
#ifndef AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_LCG31_HPP_INCLUDED
#define AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_LCG31_HPP_INCLUDED

#include "../double_constants.hpp"
#include "../probability/dist_exponential.hpp"
#include "../template_math.hpp"
#include "ziggurat_core.hpp"
#include "ziggurat_exponential.hpp"

#include <cmath>
#include <cstdint>

namespace aftermath
{
    namespace random
    {
        template <typename t_uniform_type>
        struct ziggurat_exponential<1024U, t_uniform_type, std::size_t, mersenne_number<31>::value - 2>
            : public ziggurat_core<1024U, ziggurat_exponential<1024U, t_uniform_type, std::size_t, mersenne_number<31>::value - 2>, t_uniform_type, std::size_t, mersenne_number<31>::value - 2, double>
        {
            static const std::uint_fast32_t n_boxes = 1024U;
            static const std::size_t diameter = mersenne_number<31>::value - 2;

            typedef t_uniform_type  uniform_type;
            typedef double          result_type;
            typedef std::size_t     bounds_type;
            typedef ziggurat_exponential<n_boxes, uniform_type, bounds_type, diameter> type;
            typedef ziggurat_core<n_boxes, type, uniform_type, bounds_type, diameter, double> base_type;

            // Inherited typedef's:
            typedef type ziggurat_impl_type;

        private:
            const result_type  right_tail_x = 9.2561645442655437;
            const result_type  left_tail_x = 0.0;
            const result_type  box_volume = 0.00097967899066202092;
            const uniform_type box_volume_uint32 = 2103844;

            // Zero-based index of the box that covers the right tail.
            static const std::uint_fast32_t right_tail_index = 0;
            // Zero-based index of the box that covers the left tail.
            static const std::uint_fast32_t left_tail_index = 0;

            // The right (left) x-endpoints of the boxes, modified for the tail boxes: { x_0*, x_1, x_2, ..., x_{n - 1} }.
            const result_type  m_width_scaled[n_boxes] = {
                4.7758987867466372e-9,   4.3102374992220575e-9,   3.9629674462009244e-9,   3.7524195812868512e-9,   3.6010396818786581e-9,   3.4827509398787387e-9,   3.3856166115034125e-9,   3.3031765523950761e-9,
                3.2315400877813043e-9,   3.1681824269673649e-9,   3.1113720878894905e-9,   3.0598699463942858e-9,   3.0127586592801641e-9,   2.9693400820688859e-9,   2.9290705548483461e-9,   2.8915184330200780e-9,
                2.8563352764538130e-9,   2.8232357438760588e-9,   2.7919832156493552e-9,   2.7623792917672719e-9,   2.7342559755922358e-9,   2.7074697591166383e-9,   2.6818970803026995e-9,   2.6574307874273152e-9,
                2.6339773538820799e-9,   2.6114546600333916e-9,   2.5897902089940441e-9,   2.5689196782626669e-9,   2.5487857340978487e-9,   2.5293370534237907e-9,   2.5105275111401020e-9,   2.4923155003600257e-9,
                2.4746633603057800e-9,   2.4575368920235043e-9,   2.4409049462184997e-9,   2.4247390706915341e-9,   2.4090132073215094e-9,   2.3937034304649498e-9,   2.3787877201578319e-9,   2.3642457647059844e-9,
                2.3500587882081580e-9,   2.3362093993247997e-9,   2.3226814582264851e-9,   2.3094599591601638e-9,   2.2965309264829756e-9,   2.2838813223511127e-9,   2.2714989645296130e-9,   2.2593724530195555e-9,
                2.2474911043909285e-9,   2.2358448928696481e-9,   2.2244243973615530e-9,   2.2132207537092990e-9,   2.2022256115736280e-9,   2.1914310954114932e-9,   2.1808297690924425e-9,   2.1704146037534648e-9,
                2.1601789485428575e-9,   2.1501165039468936e-9,   2.1402212974302906e-9,   2.1304876611536211e-9,   2.1209102115586233e-9,   2.1114838306365236e-9,   2.1022036487154893e-9,   2.0930650286216581e-9,
                2.0840635510842098e-9,   2.0751950012689811e-9,   2.0664553563374488e-9,   2.0578407739387484e-9,   2.0493475815519562e-9,   2.0409722666043074e-9,   2.0327114672984963e-9,   2.0245619640888328e-9,
                2.0165206717519144e-9,   2.0085846320027140e-9,   2.0007510066116471e-9,   1.9930170709823575e-9,   1.9853802081536794e-9,   1.9778379031925788e-9,   1.9703877379478652e-9,   1.9630273861371578e-9,
                1.9557546087420071e-9,   1.9485672496882509e-9,   1.9414632317906518e-9,   1.9344405529426354e-9,   1.9274972825335550e-9,   1.9206315580773616e-9,   1.9138415820378748e-9,   1.9071256188370489e-9,
                1.9004819920337109e-9,   1.8939090816612394e-9,   1.8874053217135525e-9,   1.8809691977695925e-9,   1.8745992447472473e-9,   1.8682940447783294e-9,   1.8620522251968635e-9,   1.8558724566335018e-9,
                1.8497534512094172e-9,   1.8436939608235005e-9,   1.8376927755271352e-9,   1.8317487219812253e-9,   1.8258606619905281e-9,   1.8200274911106887e-9,   1.8142481373236860e-9,   1.8085215597776962e-9,
                1.8028467475876491e-9,   1.7972227186929978e-9,   1.7916485187694587e-9,   1.7861232201916857e-9,   1.7806459210440440e-9,   1.7752157441768295e-9,   1.7698318363054493e-9,   1.7644933671502368e-9,
                1.7591995286147183e-9,   1.7539495340002879e-9,   1.7487426172553684e-9,   1.7435780322572561e-9,   1.7384550521249568e-9,   1.7333729685614187e-9,   1.7283310912236667e-9,   1.7233287471194279e-9,
                1.7183652800289217e-9,   1.7134400499505636e-9,   1.7085524325694071e-9,   1.7037018187472098e-9,   1.6988876140330783e-9,   1.6941092381937004e-9,   1.6893661247622329e-9,   1.6846577206049597e-9,
                1.6799834855048890e-9,   1.6753428917614972e-9,   1.6707354238058775e-9,   1.6661605778305821e-9,   1.6616178614334935e-9,   1.6571067932750887e-9,   1.6526269027484959e-9,   1.6481777296617766e-9,
                1.6437588239318905e-9,   1.6393697452898333e-9,   1.6350100629964591e-9,   1.6306793555685276e-9,   1.6263772105145358e-9,   1.6221032240799192e-9,   1.6178570010012244e-9,   1.6136381542688779e-9,
                1.6094463048981914e-9,   1.6052810817082640e-9,   1.6011421211084546e-9,   1.5970290668921169e-9,   1.5929415700373020e-9,   1.5888792885141467e-9,   1.5848418870986822e-9,   1.5808290371928049e-9,
                1.5768404166501690e-9,   1.5728757096077663e-9,   1.5689346063229726e-9,   1.5650168030158487e-9,   1.5611220017164933e-9,   1.5572499101172562e-9,   1.5534002414296251e-9,   1.5495727142456112e-9,
                1.5457670524034637e-9,   1.5419829848575526e-9,   1.5382202455522655e-9,   1.5344785732997696e-9,   1.5307577116614978e-9,   1.5270574088332252e-9,   1.5233774175336026e-9,   1.5197174948960268e-9,
                1.5160774023637253e-9,   1.5124569055879431e-9,   1.5088557743291218e-9,   1.5052737823609648e-9,   1.5017107073772901e-9,   1.4981663309015720e-9,   1.4946404381990798e-9,   1.4911328181915249e-9,
                1.4876432633741299e-9,   1.4841715697350378e-9,   1.4807175366769837e-9,   1.4772809669411506e-9,   1.4738616665331395e-9,   1.4704594446509812e-9,   1.4670741136151240e-9,   1.4637054888003321e-9,
                1.4603533885694320e-9,   1.4570176342088480e-9,   1.4536980498658679e-9,   1.4503944624875843e-9,   1.4471067017614573e-9,   1.4438346000574483e-9,   1.4405779923716736e-9,   1.4373367162715317e-9,
                1.4341106118422574e-9,   1.4308995216348585e-9,   1.4277032906153924e-9,   1.4245217661155415e-9,   1.4213547977844475e-9,   1.4182022375417660e-9,   1.4150639395319055e-9,   1.4119397600794138e-9,
                1.4088295576454778e-9,   1.4057331927855046e-9,   1.4026505281077495e-9,   1.3995814282329627e-9,   1.3965257597550221e-9,   1.3934833912025258e-9,   1.3904541930013145e-9,   1.3874380374378973e-9,
                1.3844347986237563e-9,   1.3814443524605022e-9,   1.3784665766058592e-9,   1.3755013504404534e-9,   1.3725485550353841e-9,   1.3696080731205538e-9,   1.3666797890537375e-9,   1.3637635887903700e-9,
                1.3608593598540301e-9,   1.3579669913076051e-9,   1.3550863737251138e-9,   1.3522173991641729e-9,   1.3493599611390865e-9,   1.3465139545945443e-9,   1.3436792758799103e-9,   1.3408558227240868e-9,
                1.3380434942109385e-9,   1.3352421907552615e-9,   1.3324518140792821e-9,   1.3296722671896735e-9,   1.3269034543550738e-9,   1.3241452810840947e-9,   1.3213976541038072e-9,   1.3186604813386911e-9,
                1.3159336718900382e-9,   1.3132171360157952e-9,   1.3105107851108375e-9,   1.3078145316876605e-9,   1.3051282893574802e-9,   1.3024519728117303e-9,   1.2997854978039478e-9,   1.2971287811320366e-9,
                1.2944817406208990e-9,   1.2918442951054276e-9,   1.2892163644138467e-9,   1.2865978693513960e-9,   1.2839887316843481e-9,   1.2813888741243504e-9,   1.2787982203130854e-9,   1.2762166948072398e-9,
                1.2736442230637762e-9,   1.2710807314254997e-9,   1.2685261471069124e-9,   1.2659803981803486e-9,   1.2634434135623844e-9,   1.2609151230005154e-9,   1.2583954570600952e-9,   1.2558843471115301e-9,
                1.2533817253177222e-9,   1.2508875246217569e-9,   1.2484016787348279e-9,   1.2459241221243941e-9,   1.2434547900025645e-9,   1.2409936183147043e-9,   1.2385405437282574e-9,   1.2360955036217818e-9,
                1.2336584360741908e-9,   1.2312292798541972e-9,   1.2288079744099551e-9,   1.2263944598588948e-9,   1.2239886769777470e-9,   1.2215905671927519e-9,   1.2192000725700480e-9,   1.2168171358062392e-9,
                1.2144417002191330e-9,   1.2120737097386491e-9,   1.2097131088978922e-9,   1.2073598428243873e-9,   1.2050138572314730e-9,   1.2026750984098489e-9,   1.2003435132192757e-9,   1.1980190490804221e-9,
                1.1957016539668577e-9,   1.1933912763971876e-9,   1.1910878654273254e-9,   1.1887913706429028e-9,   1.1865017421518120e-9,   1.1842189305768785e-9,   1.1819428870486609e-9,   1.1796735631983768e-9,
                1.1774109111509498e-9,   1.1751548835181766e-9,   1.1729054333920122e-9,   1.1706625143379685e-9,   1.1684260803886268e-9,   1.1661960860372595e-9,   1.1639724862315606e-9,   1.1617552363674814e-9,
                1.1595442922831697e-9,   1.1573396102530115e-9,   1.1551411469817707e-9,   1.1529488595988281e-9,   1.1507627056525142e-9,   1.1485826431045368e-9,   1.1464086303245003e-9,   1.1442406260845142e-9,
                1.1420785895538907e-9,   1.1399224802939284e-9,   1.1377722582527807e-9,   1.1356278837604076e-9,   1.1334893175236085e-9,   1.1313565206211355e-9,   1.1292294544988849e-9,   1.1271080809651653e-9,
                1.1249923621860414e-9,   1.1228822606807517e-9,   1.1207777393171986e-9,   1.1186787613075098e-9,   1.1165852902036694e-9,   1.1144972898932175e-9,   1.1124147245950172e-9,   1.1103375588550872e-9,
                1.1082657575424992e-9,   1.1061992858453393e-9,   1.1041381092667305e-9,   1.1020821936209179e-9,   1.1000315050294126e-9,   1.0979860099171952e-9,   1.0959456750089770e-9,   1.0939104673255179e-9,
                1.0918803541800002e-9,   1.0898553031744566e-9,   1.0878352821962527e-9,   1.0858202594146218e-9,   1.0838102032772511e-9,   1.0818050825069199e-9,   1.0798048660981863e-9,   1.0778095233141244e-9,
                1.0758190236831083e-9,   1.0738333369956448e-9,   1.0718524333012511e-9,   1.0698762829053796e-9,   1.0679048563663864e-9,   1.0659381244925447e-9,   1.0639760583391007e-9,   1.0620186292053731e-9,
                1.0600658086318929e-9,   1.0581175683975859e-9,   1.0561738805169944e-9,   1.0542347172375387e-9,   1.0523000510368182e-9,   1.0503698546199502e-9,   1.0484441009169463e-9,   1.0465227630801263e-9,
                1.0446058144815683e-9,   1.0426932287105939e-9,   1.0407849795712894e-9,   1.0388810410800614e-9,   1.0369813874632257e-9,   1.0350859931546304e-9,   1.0331948327933115e-9,   1.0313078812211805e-9,
                1.0294251134807442e-9,   1.0275465048128558e-9,   1.0256720306544958e-9,   1.0238016666365843e-9,   1.0219353885818220e-9,   1.0200731725025612e-9,   1.0182149945987047e-9,   1.0163608312556336e-9,
                1.0145106590421628e-9,   1.0126644547085233e-9,   1.0108221951843723e-9,   1.0089838575768287e-9,   1.0071494191685356e-9,   1.0053188574157478e-9,   1.0034921499464446e-9,   1.0016692745584677e-9,
                9.9985020921768293e-10,  9.9803493205616666e-10,  9.9622342137041519e-10,  9.9441565561957781e-10,  9.9261161342371260e-10,  9.9081127356206472e-10,  9.8901461497136692e-10,  9.8722161674416179e-10,
                9.8543225812714555e-10,  9.8364651851953296e-10,  9.8186437747144295e-10,  9.8008581468230488e-10,  9.7831080999928478e-10,  9.7653934341573163e-10,  9.7477139506964301e-10,  9.7300694524215008e-10,
                9.7124597435602149e-10,  9.6948846297418593e-10,  9.6773439179827305e-10,  9.6598374166717245e-10,  9.6423649355561051e-10,  9.6249262857274472e-10,  9.6075212796077531e-10,  9.5901497309357387e-10,
                9.5728114547532871e-10,  9.5555062673920679e-10,  9.5382339864603177e-10,  9.5209944308297821e-10,  9.5037874206228144e-10,  9.4866127771996296e-10,  9.4694703231457123e-10,  9.4523598822593740e-10,
                9.4352812795394600e-10,  9.4182343411732018e-10,  9.4012188945242139e-10,  9.3842347681206329e-10,  9.3672817916433955e-10,  9.3503597959146555e-10,  9.3334686128863356e-10,  9.3166080756288137e-10,
                9.2997780183197406e-10,  9.2829782762329880e-10,  9.2662086857277239e-10,  9.2494690842376152e-10,  9.2327593102601533e-10,  9.2160792033461035e-10,  9.1994286040890746e-10,  9.1828073541152070e-10,
                9.1662152960729793e-10,  9.1496522736231295e-10,  9.1331181314286908e-10,  9.1166127151451389e-10,  9.1001358714106513e-10,  9.0836874478364747e-10,  9.0672672929974002e-10,  9.0508752564223449e-10,
                9.0345111885850377e-10,  9.0181749408948084e-10,  9.0018663656874783e-10,  8.9855853162163510e-10,  8.9693316466433020e-10,  8.9531052120299653e-10,  8.9369058683290172e-10,  8.9207334723755528e-10,
                8.9045878818785580e-10,  8.8884689554124715e-10,  8.8723765524088393e-10,  8.8563105331480575e-10,  8.8402707587512036e-10,  8.8242570911719553e-10,  8.8082693931885943e-10,  8.7923075283960954e-10,
                8.7763713611982984e-10,  8.7604607568001631e-10,  8.7445755812001044e-10,  8.7287157011824083e-10,  8.7128809843097265e-10,  8.6970712989156485e-10,  8.6812865140973511e-10,  8.6655264997083230e-10,
                8.6497911263511645e-10,  8.6340802653704607e-10,  8.6183937888457271e-10,  8.6027315695844270e-10,  8.5870934811150602e-10,  8.5714793976803200e-10,  8.5558891942303202e-10,  8.5403227464158894e-10,
                8.5247799305819321e-10,  8.5092606237608560e-10,  8.4937647036660642e-10,  8.4782920486855121e-10,  8.4628425378753263e-10,  8.4474160509534880e-10,  8.4320124682935757e-10,  8.4166316709185709e-10,
                8.4012735404947221e-10,  8.3859379593254687e-10,  8.3706248103454231e-10,  8.3553339771144103e-10,  8.3400653438115647e-10,  8.3248187952294819e-10,  8.3095942167684270e-10,  8.2943914944305963e-10,
                8.2792105148144337e-10,  8.2640511651089994e-10,  8.2489133330883915e-10,  8.2337969071062187e-10,  8.2187017760901241e-10,  8.2036278295363597e-10,  8.1885749575044097e-10,  8.1735430506116633e-10,
                8.1585320000281351e-10,  8.1435416974712338e-10,  8.1285720352005773e-10,  8.1136229060128542e-10,  8.0986942032367310e-10,  8.0837858207278044e-10,  8.0688976528635979e-10,  8.0540295945386026e-10,
                8.0391815411593604e-10,  8.0243533886395908e-10,  8.0095450333953593e-10,  7.9947563723402871e-10,  7.9799873028808020e-10,  7.9652377229114299e-10,  7.9505075308101256e-10,  7.9357966254336431e-10,
                7.9211049061129443e-10,  7.9064322726486470e-10,  7.8917786253065090e-10,  7.8771438648129504e-10,  7.8625278923506124e-10,  7.8479306095539518e-10,  7.8333519185048715e-10,  7.8187917217283861e-10,
                7.8042499221883220e-10,  7.7897264232830517e-10,  7.7752211288412619e-10,  7.7607339431177544e-10,  7.7462647707892803e-10,  7.7318135169504061e-10,  7.7173800871094120e-10,  7.7029643871842204e-10,
                7.6885663234983574e-10,  7.6741858027769424e-10,  7.6598227321427098e-10,  7.6454770191120586e-10,  7.6311485715911327e-10,  7.6168372978719286e-10,  7.6025431066284323e-10,  7.5882659069127838e-10,
                7.5740056081514692e-10,  7.5597621201415396e-10,  7.5455353530468573e-10,  7.5313252173943675e-10,  7.5171316240703967e-10,  7.5029544843169759e-10,  7.4887937097281894e-10,  7.4746492122465482e-10,
                7.4605209041593877e-10,  7.4464086980952892e-10,  7.4323125070205258e-10,  7.4182322442355301e-10,  7.4041678233713864e-10,  7.3901191583863444e-10,  7.3760861635623550e-10,  7.3620687535016285e-10,
                7.3480668431232140e-10,  7.3340803476595994e-10,  7.3201091826533329e-10,  7.3061532639536645e-10,  7.2922125077132075e-10,  7.2782868303846199e-10,  7.2643761487173050e-10,  7.2504803797541314e-10,
                7.2365994408281712e-10,  7.2227332495594569e-10,  7.2088817238517564e-10,  7.1950447818893657e-10,  7.1812223421339186e-10,  7.1674143233212143e-10,  7.1536206444580611e-10,  7.1398412248191367e-10,
                7.1260759839438651e-10,  7.1123248416333084e-10,  7.0985877179470753e-10,  7.0848645332002436e-10,  7.0711552079602989e-10,  7.0574596630440867e-10,  7.0437778195147795e-10,  7.0301095986788577e-10,
                7.0164549220831046e-10,  7.0028137115116138e-10,  6.9891858889828111e-10,  6.9755713767464879e-10,  6.9619700972808480e-10,  6.9483819732895663e-10,  6.9348069276988594e-10,  6.9212448836545680e-10,
                6.9076957645192507e-10,  6.8941594938692883e-10,  6.8806359954920001e-10,  6.8671251933827691e-10,  6.8536270117421792e-10,  6.8401413749731604e-10,  6.8266682076781453e-10,  6.8132074346562343e-10,
                6.7997589809003695e-10,  6.7863227715945182e-10,  6.7728987321108641e-10,  6.7594867880070075e-10,  6.7460868650231732e-10,  6.7326988890794255e-10,  6.7193227862728916e-10,  6.7059584828749914e-10,
                6.6926059053286741e-10,  6.6792649802456625e-10,  6.6659356344037016e-10,  6.6526177947438153e-10,  6.6393113883675672e-10,  6.6260163425343280e-10,  6.6127325846585470e-10,  6.5994600423070300e-10,
                6.5861986431962199e-10,  6.5729483151894834e-10,  6.5597089862944008e-10,  6.5464805846600594e-10,  6.5332630385743515e-10,  6.5200562764612743e-10,  6.5068602268782335e-10,  6.4936748185133496e-10,
                6.4804999801827663e-10,  6.4673356408279609e-10,  6.4541817295130565e-10,  6.4410381754221366e-10,  6.4279049078565594e-10,  6.4147818562322742e-10,  6.4016689500771383e-10,  6.3885661190282336e-10,
                6.3754732928291844e-10,  6.3623904013274736e-10,  6.3493173744717597e-10,  6.3362541423091921e-10,  6.3232006349827260e-10,  6.3101567827284349e-10,  6.2971225158728227e-10,  6.2840977648301326e-10,
                6.2710824600996547e-10,  6.2580765322630300e-10,  6.2450799119815523e-10,  6.2320925299934666e-10,  6.2191143171112639e-10,  6.2061452042189721e-10,  6.1931851222694429e-10,  6.1802340022816342e-10,
                6.1672917753378875e-10,  6.1543583725812006e-10,  6.1414337252124942e-10,  6.1285177644878734e-10,  6.1156104217158827e-10,  6.1027116282547546e-10,  6.0898213155096518e-10,  6.0769394149299012e-10,
                6.0640658580062222e-10,  6.0512005762679453e-10,  6.0383435012802241e-10,  6.0254945646412379e-10,  6.0126536979793854e-10,  5.9998208329504700e-10,  5.9869959012348746e-10,  5.9741788345347269e-10,
                5.9613695645710544e-10,  5.9485680230809286e-10,  5.9357741418145979e-10,  5.9229878525326096e-10,  5.9102090870029196e-10,  5.8974377769979899e-10,  5.8846738542918737e-10,  5.8719172506572872e-10,
                5.8591678978626681e-10,  5.8464257276692205e-10,  5.8336906718279447e-10,  5.8209626620766535e-10,  5.8082416301369722e-10,  5.7955275077113239e-10,  5.7828202264798985e-10,  5.7701197180976052e-10,
                5.7574259141910083e-10,  5.7447387463552452e-10,  5.7320581461509275e-10,  5.7193840451010231e-10,  5.7067163746877193e-10,  5.6940550663492679e-10,  5.6814000514768091e-10,  5.6687512614111763e-10,
                5.6561086274396798e-10,  5.6434720807928691e-10,  5.6308415526412735e-10,  5.6182169740921210e-10,  5.6055982761860335e-10,  5.5929853898936995e-10,  5.5803782461125221e-10,  5.5677767756632433e-10,
                5.5551809092865431e-10,  5.5425905776396122e-10,  5.5300057112927001e-10,  5.5174262407256345e-10,  5.5048520963243153e-10,  5.4922832083771789e-10,  5.4797195070716351e-10,  5.4671609224904737e-10,
                5.4546073846082426e-10,  5.4420588232875936e-10,  5.4295151682755983e-10,  5.4169763492000320e-10,  5.4044422955656239e-10,  5.3919129367502754e-10,  5.3793882020012435e-10,  5.3668680204312897e-10,
                5.3543523210147937e-10,  5.3418410325838302e-10,  5.3293340838242093e-10,  5.3168314032714789e-10,  5.3043329193068886e-10,  5.2918385601533140e-10,  5.2793482538711409e-10,  5.2668619283541085e-10,
                5.2543795113251107e-10,  5.2419009303319545e-10,  5.2294261127430748e-10,  5.2169549857432046e-10,  5.2044874763289997e-10,  5.1920235113046169e-10,  5.1795630172772448e-10,  5.1671059206525868e-10,
                5.1546521476302932e-10,  5.1422016241993450e-10,  5.1297542761333845e-10,  5.1173100289859943e-10,  5.1048688080859225e-10,  5.0924305385322536e-10,  5.0799951451895228e-10,  5.0675625526827743e-10,
                5.0551326853925610e-10,  5.0427054674498849e-10,  5.0302808227310775e-10,  5.0178586748526175e-10,  5.0054389471658868e-10,  4.9930215627518610e-10,  4.9806064444157350e-10,  4.9681935146814816e-10,
                4.9557826957863415e-10,  4.9433739096752433e-10,  4.9309670779951536e-10,  4.9185621220893528e-10,  4.9061589629916378e-10,  4.8937575214204490e-10,  4.8813577177729195e-10,  4.8689594721188463e-10,
                4.8565627041945801e-10,  4.8441673333968341e-10,  4.8317732787764076e-10,  4.8193804590318257e-10,  4.8069887925028899e-10,  4.7945981971641410e-10,  4.7822085906182302e-10,  4.7698198900891974e-10,
                4.7574320124156547e-10,  4.7450448740438730e-10,  4.7326583910207697e-10,  4.7202724789867954e-10,  4.7078870531687177e-10,  4.6955020283722991e-10,  4.6831173189748680e-10,  4.6707328389177798e-10,
                4.6583485016987652e-10,  4.6459642203641650e-10,  4.6335799075010468e-10,  4.6211954752292033e-10,  4.6088108351930273e-10,  4.5964258985532630e-10,  4.5840405759786296e-10,  4.5716547776373145e-10,
                4.5592684131883336e-10,  4.5468813917727559e-10,  4.5344936220047894e-10,  4.5221050119627241e-10,  4.5097154691797315e-10,  4.4973249006345149e-10,  4.4849332127418083e-10,  4.4725403113427206e-10,
                4.4601461016949219e-10,  4.4477504884626673e-10,  4.4353533757066562e-10,  4.4229546668737212e-10,  4.4105542647863454e-10,  4.3981520716320023e-10,  4.3857479889523146e-10,  4.3733419176320285e-10,
                4.3609337578877991e-10,  4.3485234092567812e-10,  4.3361107705850238e-10,  4.3236957400156609e-10,  4.3112782149768955e-10,  4.2988580921697723e-10,  4.2864352675557325e-10,  4.2740096363439475e-10,
                4.2615810929784252e-10,  4.2491495311248840e-10,  4.2367148436573884e-10,  4.2242769226447418e-10,  4.2118356593366297e-10,  4.1993909441495068e-10,  4.1869426666522240e-10,  4.1744907155513872e-10,
                4.1620349786764411e-10,  4.1495753429644741e-10,  4.1371116944447335e-10,  4.1246439182228477e-10,  4.1121718984647458e-10,  4.0996955183802681e-10,  4.0872146602064595e-10,  4.0747292051905388e-10,
                4.0622390335725341e-10,  4.0497440245675782e-10,  4.0372440563478534e-10,  4.0247390060241781e-10,  4.0122287496272258e-10,  3.9997131620883669e-10,  3.9871921172201243e-10,  3.9746654876962322e-10,
                3.9621331450312881e-10,  3.9495949595599878e-10,  3.9370508004159324e-10,  3.9245005355099954e-10,  3.9119440315082401e-10,  3.8993811538093734e-10,  3.8868117665217252e-10,  3.8742357324397402e-10,
                3.8616529130199695e-10,  3.8490631683565476e-10,  3.8364663571561425e-10,  3.8238623367123631e-10,  3.8112509628796103e-10,  3.7986320900463558e-10,  3.7860055711078331e-10,  3.7733712574381253e-10,
                3.7607289988616319e-10,  3.7480786436238970e-10,  3.7354200383617830e-10,  3.7227530280729697e-10,  3.7100774560847593e-10,  3.6973931640221698e-10,  3.6846999917752947e-10,  3.6719977774659076e-10,
                3.6592863574132922e-10,  3.6465655660992726e-10,  3.6338352361324225e-10,  3.6210951982114284e-10,  3.6083452810875820e-10,  3.5955853115263766e-10,  3.5828151142681794e-10,  3.5700345119879547e-10,
                3.5572433252540062e-10,  3.5444413724857114e-10,  3.5316284699102168e-10,  3.5188044315180609e-10,  3.5059690690176938e-10,  3.4931221917888589e-10,  3.4802636068348003e-10,  3.4673931187332606e-10,
                3.4545105295862309e-10,  3.4416156389684122e-10,  3.4287082438743500e-10,  3.4157881386641970e-10,  3.4028551150080613e-10,  3.3899089618288945e-10,  3.3769494652438717e-10,  3.3639764085042145e-10,
                3.3509895719334055e-10,  3.3379887328637421e-10,  3.3249736655711726e-10,  3.3119441412083591e-10,  3.2988999277359063e-10,  3.2858407898516947e-10,  3.2727664889182533e-10,  3.2596767828881047e-10,
                3.2465714262270126e-10,  3.2334501698350600e-10,  3.2203127609654801e-10,  3.2071589431411631e-10,  3.1939884560687563e-10,  3.1808010355502709e-10,  3.1675964133921066e-10,  3.1543743173114025e-10,
                3.1411344708396145e-10,  3.1278765932232207e-10,  3.1146003993214471e-10,  3.1013055995009050e-10,  3.0879918995270238e-10,  3.0746590004521601e-10,  3.0613065985002569e-10,  3.0479343849479217e-10,
                3.0345420460017874e-10,  3.0211292626720120e-10,  3.0076957106417667e-10,  2.9942410601325574e-10,  2.9807649757652139e-10,  2.9672671164163757e-10,  2.9537471350702952e-10,  2.9402046786657689e-10,
                2.9266393879380004e-10,  2.9130508972551873e-10,  2.8994388344496164e-10,  2.8858028206430384e-10,  2.8721424700660844e-10,  2.8584573898714739e-10,  2.8447471799407500e-10,  2.8310114326842670e-10,
                2.8172497328341394e-10,  2.8034616572298469e-10,  2.7896467745961755e-10,  2.7758046453131557e-10,  2.7619348211776444e-10,  2.7480368451561740e-10,  2.7341102511286777e-10,  2.7201545636226732e-10,
                2.7061692975374690e-10,  2.6921539578579308e-10,  2.6781080393573222e-10,  2.6640310262887042e-10,  2.6499223920643521e-10,  2.6357815989226168e-10,  2.6216080975816221e-10,  2.6074013268791604e-10,
                2.5931607133981062e-10,  2.5788856710766306e-10,  2.5645756008024573e-10,  2.5502298899903535e-10,  2.5358479121420033e-10,  2.5214290263873564e-10,  2.5069725770064927e-10,  2.4924778929309808e-10,
                2.4779442872236470e-10,  2.4633710565356026e-10,  2.4487574805393016e-10,  2.4341028213363271e-10,  2.4194063228385142e-10,  2.4046672101209302e-10,  2.3898846887451338e-10,  2.3750579440510280e-10,
                2.3601861404155098e-10,  2.3452684204759946e-10,  2.3303039043167636e-10,  2.3152916886159352e-10,  2.3002308457507106e-10,  2.2851204228583737e-10,  2.2699594408503439e-10,  2.2547468933763845e-10,
                2.2394817457358559e-10,  2.2241629337326692e-10,  2.2087893624703458e-10,  2.1933599050833127e-10,  2.1778734014002656e-10,  2.1623286565351061e-10,  2.1467244394006023e-10,  2.1310594811395377e-10,
                2.1153324734676851e-10,  2.0995420669224798e-10,  2.0836868690107578e-10,  2.0677654422483640e-10,  2.0517763020838257e-10,  2.0357179146976085e-10,  2.0195886946677331e-10,  2.0033870024917091e-10,
                1.9871111419538435e-10,  1.9707593573259780e-10,  1.9543298303886097e-10,  1.9378206772581212e-10,  1.9212299450044915e-10,  1.9045556080423458e-10,  1.8877955642765231e-10,  1.8709476309814695e-10,
                1.8540095403916673e-10,  1.8369789349779775e-10,  1.8198533623821471e-10,  1.8026302699787945e-10,  1.7853069990308774e-10,  1.7678807784009262e-10,  1.7503487177761204e-10,  1.7327078003605339e-10,
                1.7149548749824928e-10,  1.6970866475588737e-10,  1.6790996718512146e-10,  1.6609903394405801e-10,  1.6427548688390496e-10,  1.6243892936453095e-10,  1.6058894496398925e-10,  1.5872509607018551e-10,
                1.5684692234128112e-10,  1.5495393901958467e-10,  1.5304563508154831e-10,  1.5112147120399731e-10,  1.4918087752381296e-10,  1.4722325116487854e-10,  1.4524795350208569e-10,  1.4325430712745976e-10,
                1.4124159247784672e-10,  1.3920904407692009e-10,  1.3715584633628083e-10,  1.3508112885083900e-10,  1.3298396111211296e-10,  1.3086334654908810e-10,  1.2871821578924183e-10,  1.2654741901149429e-10,
                1.2434971723718980e-10,  1.2212377237345642e-10,  1.1986813578373433e-10,  1.1758123511066479e-10,  1.1526135901390397e-10,  1.1290663940575504e-10,  1.1051503066534958e-10,  1.0808428517998803e-10,
                1.0561192438981951e-10,  1.0309520428479664e-10,  1.0053107400018654e-10,  9.7916125749225537e-11,  9.5246533775519998e-11,  9.2517979239378093e-11,  8.9725556874648386e-11,  8.6863657717119691e-11,
                8.3925819978784032e-11,  8.0904536849880825e-11,  7.7791005036630740e-11,  7.4574790144833867e-11,  7.1243372779223000e-11,  6.7781519157307900e-11,  6.4170385945988830e-11,  6.0386208723302797e-11,
                5.6398311584842668e-11,  5.2165955769675905e-11,  4.7633083480489245e-11,  4.2718957007176646e-11,  3.7300003484602089e-11,  3.1170276563784511e-11,  2.3939617255021848e-11,  1.4690216607754940e-11
            };
            // (<diameter> + 1)-scaled heights of the boxes: { f(x_1), f(x_2) - f(x_1), ..., f(x_{n - 1}) - f(x_{n - 2}), f(m) - f(x_{n - 1}) }.
            const result_type  m_height_scaled[n_boxes] = {
                4.4480427179527693e-14,  4.9285919450846982e-14,  5.3604785071935700e-14,  5.6612543879708286e-14,  5.8992412460684655e-14,  6.0996040735567188e-14,  6.2746034940543749e-14,  6.4312038678842713e-14,
                6.5737701662407788e-14,  6.7052331454291826e-14,  6.8276635580663367e-14,  6.9425832444613591e-14,  7.0511462159878129e-14,  7.1542501811602927e-14,  7.2526084374801726e-14,  7.3467979928732263e-14,
                7.4372928119425379e-14,  7.5244874134748981e-14,  7.6087140141088160e-14,  7.6902552388007056e-14,  7.7693537143926534e-14,  7.8462194262878471e-14,  7.9210354402079264e-14,  7.9939624093215957e-14,
                8.0651421656144155e-14,  8.1347006115726376e-14,  8.2027500707555189e-14,  8.2693912152343092e-14,  8.3347146587773175e-14,  8.3988022835122367e-14,  8.4617283522300906e-14,  8.5235604469013431e-14,
                8.5843602652454999e-14,  8.6441843005564411e-14,  8.7030844248886307e-14,  8.7611083917616094e-14,  8.8183002714574486e-14,  8.8747008295599739e-14,  8.9303478574617629e-14,  8.9852764620304423e-14,
                9.0395193203933572e-14,  9.0931069048037878e-14,  9.1460676817425204e-14,  9.1984282887472182e-14,  9.2502136919188251e-14,  9.3014473266058738e-14,  9.3521512233957701e-14,  9.4023461212324421e-14,
                9.4520515692207025e-14,  9.5012860184601169e-14,  9.5500669050677520e-14,  9.5984107253939625e-14,  9.6463331043035622e-14,  9.6938488572824108e-14,  9.7409720470334269e-14,  9.7877160351436991e-14,
                9.8340935293335400e-14,  9.8801166267372380e-14,  9.9257968536124085e-14,  9.9711452018290133e-14,  1.0016172162449256e-13,  1.0060887756674818e-13,  1.0105301564407527e-13,  1.0149422750642974e-13,
                1.0193260089893234e-13,  1.0236821988814310e-13,  1.0280116507195828e-13,  1.0323151377454510e-13,  1.0365934022758779e-13,  1.0408471573899343e-13,  1.0450770885009392e-13,  1.0492838548228172e-13,
                1.0534680907392824e-13,  1.0576304070835459e-13,  1.0617713923355414e-13,  1.0658916137430263e-13,  1.0699916183723480e-13,  1.0740719340941567e-13,  1.0781330705088832e-13,  1.0821755198163882e-13,
                1.0861997576338149e-13,  1.0902062437653385e-13,  1.0941954229272020e-13,  1.0981677254311472e-13,  1.1021235678291042e-13,  1.1060633535217678e-13,  1.1099874733334872e-13,  1.1138963060557026e-13,
                1.1177902189609923e-13,  1.1216695682896366e-13,  1.1255346997104584e-13,  1.1293859487575742e-13,  1.1332236412445637e-13,  1.1370480936574599e-13,  1.1408596135278595e-13,  1.1446584997873589e-13,
                1.1484450431044394e-13,  1.1522195262048432e-13,  1.1559822241764136e-13,  1.1597334047593010e-13,  1.1634733286223814e-13,  1.1672022496266725e-13,  1.1709204150764819e-13,  1.1746280659589753e-13,
                1.1783254371728041e-13,  1.1820127577463954e-13,  1.1856902510464638e-13,  1.1893581349772731e-13,  1.1930166221711404e-13,  1.1966659201706465e-13,  1.2003062316029848e-13,  1.2039377543468594e-13,
                1.2075606816923128e-13,  1.2111752024938454e-13,  1.2147815013171648e-13,  1.2183797585798838e-13,  1.2219701506864677e-13,  1.2255528501577142e-13,  1.2291280257550314e-13,  1.2326958425997673e-13,
                1.2362564622878262e-13,  1.2398100429997982e-13,  1.2433567396068115e-13,  1.2468967037723095e-13,  1.2504300840499403e-13,  1.2539570259777384e-13,  1.2574776721687677e-13,  1.2609921623983862e-13,
                1.2645006336882842e-13,  1.2680032203874398e-13,  1.2715000542501285e-13,  1.2749912645111154e-13,  1.2784769779581546e-13,  1.2819573190019097e-13,  1.2854324097434084e-13,  1.2889023700391350e-13,
                1.2923673175638612e-13,  1.2958273678713100e-13,  1.2992826344527429e-13,  1.3027332287935569e-13,  1.3061792604279720e-13,  1.3096208369918884e-13,  1.3130580642739864e-13,  1.3164910462651401e-13,
                1.3199198852062130e-13,  1.3233446816342982e-13,  1.3267655344274656e-13,  1.3301825408480738e-13,  1.3335957965847039e-13,  1.3370053957927656e-13,  1.3404114311338301e-13,  1.3438139938137350e-13,
                1.3472131736195100e-13,  1.3506090589551662e-13,  1.3540017368763928e-13,  1.3573912931242002e-13,  1.3607778121575499e-13,  1.3641613771850070e-13,  1.3675420701954520e-13,  1.3709199719878852e-13,
                1.3742951622003562e-13,  1.3776677193380508e-13,  1.3810377208005639e-13,  1.3844052429083883e-13,  1.3877703609286457e-13,  1.3911331491000877e-13,  1.3944936806573909e-13,  1.3978520278547716e-13,
                1.4012082619889414e-13,  1.4045624534214293e-13,  1.4079146716002885e-13,  1.4112649850812107e-13,  1.4146134615480669e-13,  1.4179601678328944e-13,  1.4213051699353469e-13,  1.4246485330416280e-13,
                1.4279903215429213e-13,  1.4313305990533379e-13,  1.4346694284273924e-13,  1.4380068717770263e-13,  1.4413429904881912e-13,  1.4446778452370063e-13,  1.4480114960055040e-13,  1.4513440020969761e-13,
                1.4546754221509334e-13,  1.4580058141576912e-13,  1.4613352354725911e-13,  1.4646637428298713e-13,  1.4679913923561962e-13,  1.4713182395838552e-13,  1.4746443394636409e-13,  1.4779697463774167e-13,
                1.4812945141503826e-13,  1.4846186960630493e-13,  1.4879423448629275e-13,  1.4912655127759427e-13,  1.4945882515175826e-13,  1.4979106123037850e-13,  1.5012326458615738e-13,  1.5045544024394513e-13,
                1.5078759318175521e-13,  1.5111972833175672e-13,  1.5145185058124442e-13,  1.5178396477358690e-13,  1.5211607570915379e-13,  1.5244818814622223e-13,  1.5278030680186358e-13,  1.5311243635281057e-13,
                1.5344458143630570e-13,  1.5377674665093127e-13,  1.5410893655742157e-13,  1.5444115567945776e-13,  1.5477340850444591e-13,  1.5510569948427858e-13,  1.5543803303608055e-13,  1.5577041354293894e-13,
                1.5610284535461825e-13,  1.5643533278826080e-13,  1.5676788012907270e-13,  1.5710049163099610e-13,  1.5743317151736773e-13,  1.5776592398156434e-13,  1.5809875318763530e-13,  1.5843166327092263e-13,
                1.5876465833866897e-13,  1.5909774247061356e-13,  1.5943091971957677e-13,  1.5976419411203334e-13,  1.6009756964867469e-13,  1.6043105030496050e-13,  1.6076464003165994e-13,  1.6109834275538274e-13,
                1.6143216237910038e-13,  1.6176610278265766e-13,  1.6210016782327486e-13,  1.6243436133604082e-13,  1.6276868713439700e-13,  1.6310314901061295e-13,  1.6343775073625324e-13,  1.6377249606263612e-13,
                1.6410738872128419e-13,  1.6444243242436712e-13,  1.6477763086513675e-13,  1.6511298771835476e-13,  1.6544850664071294e-13,  1.6578419127124645e-13,  1.6612004523174007e-13,  1.6645607212712772e-13,
                1.6679227554588538e-13,  1.6712865906041751e-13,  1.6746522622743727e-13,  1.6780198058834052e-13,  1.6813892566957389e-13,  1.6847606498299697e-13,  1.6881340202623886e-13,  1.6915094028304904e-13,
                1.6948868322364293e-13,  1.6982663430504209e-13,  1.7016479697140924e-13,  1.7050317465437824e-13,  1.7084177077337916e-13,  1.7118058873595851e-13,  1.7151963193809475e-13,  1.7185890376450930e-13,
                1.7219840758897296e-13,  1.7253814677460806e-13,  1.7287812467418623e-13,  1.7321834463042215e-13,  1.7355880997626308e-13,  1.7389952403517454e-13,  1.7424049012142201e-13,  1.7458171154034894e-13,
                1.7492319158865099e-13,  1.7526493355464669e-13,  1.7560694071854461e-13,  1.7594921635270701e-13,  1.7629176372191019e-13,  1.7663458608360157e-13,  1.7697768668815354e-13,  1.7732106877911415e-13,
                1.7766473559345488e-13,  1.7800869036181526e-13,  1.7835293630874471e-13,  1.7869747665294151e-13,  1.7904231460748894e-13,  1.7938745338008884e-13,  1.7973289617329241e-13,  1.8007864618472850e-13,
                1.8042470660732936e-13,  1.8077108062955401e-13,  1.8111777143560906e-13,  1.8146478220566741e-13,  1.8181211611608447e-13,  1.8215977633961230e-13,  1.8250776604561153e-13,  1.8285608840026114e-13,
                1.8320474656676626e-13,  1.8355374370556388e-13,  1.8390308297452664e-13,  1.8425276752916473e-13,  1.8460280052282587e-13,  1.8495318510689356e-13,  1.8530392443098346e-13,  1.8565502164313818e-13,
                1.8600647989002025e-13,  1.8635830231710358e-13,  1.8671049206886326e-13,  1.8706305228896382e-13,  1.8741598612044604e-13,  1.8776929670591219e-13,  1.8812298718770999e-13,  1.8847706070811500e-13,
                1.8883152040951188e-13,  1.8918636943457412e-13,  1.8954161092644267e-13,  1.8989724802890325e-13,  1.9025328388656246e-13,  1.9060972164502278e-13,  1.9096656445105635e-13,  1.9132381545277775e-13,
                1.9168147779981566e-13,  1.9203955464348350e-13,  1.9239804913694907e-13,  1.9275696443540324e-13,  1.9311630369622769e-13,  1.9347607007916176e-13,  1.9383626674646842e-13,  1.9419689686309938e-13,
                1.9455796359685943e-13,  1.9491947011856992e-13,  1.9528141960223160e-13,  1.9564381522518661e-13,  1.9600666016827984e-13,  1.9636995761601961e-13,  1.9673371075673769e-13,  1.9709792278274869e-13,
                1.9746259689050889e-13,  1.9782773628077448e-13,  1.9819334415875929e-13,  1.9855942373429193e-13,  1.9892597822197250e-13,  1.9929301084132886e-13,  1.9966052481697236e-13,  2.0002852337875326e-13,
                2.0039700976191565e-13,  2.0076598720725211e-13,  2.0113545896125792e-13,  2.0150542827628500e-13,  2.0187589841069555e-13,  2.0224687262901537e-13,  2.0261835420208699e-13,  2.0299034640722247e-13,
                2.0336285252835607e-13,  2.0373587585619669e-13,  2.0410941968838013e-13,  2.0448348732962124e-13,  2.0485808209186587e-13,  2.0523320729444279e-13,  2.0560886626421548e-13,  2.0598506233573385e-13,
                2.0636179885138591e-13,  2.0673907916154945e-13,  2.0711690662474369e-13,  2.0749528460778087e-13,  2.0787421648591804e-13,  2.0825370564300873e-13,  2.0863375547165479e-13,  2.0901436937335826e-13,
                2.0939555075867345e-13,  2.0977730304735900e-13,  2.1015962966853022e-13,  2.1054253406081152e-13,  2.1092601967248905e-13,  2.1131008996166353e-13,  2.1169474839640335e-13,  2.1207999845489783e-13,
                2.1246584362561079e-13,  2.1285228740743440e-13,  2.1323933330984332e-13,  2.1362698485304912e-13,  2.1401524556815506e-13,  2.1440411899731127e-13,  2.1479360869387017e-13,  2.1518371822254240e-13,
                2.1557445115955309e-13,  2.1596581109279858e-13,  2.1635780162200354e-13,  2.1675042635887859e-13,  2.1714368892727840e-13,  2.1753759296336020e-13,  2.1793214211574295e-13,  2.1832734004566686e-13,
                2.1872319042715363e-13,  2.1911969694716710e-13,  2.1951686330577463e-13,  2.1991469321630894e-13,  2.2031319040553066e-13,  2.2071235861379150e-13,  2.2111220159519804e-13,  2.2151272311777624e-13,
                2.2191392696363657e-13,  2.2231581692913997e-13,  2.2271839682506435e-13,  2.2312167047677205e-13,  2.2352564172437788e-13,  2.2393031442291801e-13,  2.2433569244251974e-13,  2.2474177966857191e-13,
                2.2514858000189629e-13,  2.2555609735891980e-13,  2.2596433567184750e-13,  2.2637329888883663e-13,  2.2678299097417143e-13,  2.2719341590843894e-13,  2.2760457768870574e-13,  2.2801648032869566e-13,
                2.2842912785896848e-13,  2.2884252432709959e-13,  2.2925667379786072e-13,  2.2967158035340173e-13,  2.3008724809343336e-13,  2.3050368113541118e-13,  2.3092088361472057e-13,  2.3133885968486285e-13,
                2.3175761351764250e-13,  2.3217714930335562e-13,  2.3259747125097950e-13,  2.3301858358836344e-13,  2.3344049056242074e-13,  2.3386319643932195e-13,  2.3428670550468944e-13,  2.3471102206379316e-13,
                2.3513615044174773e-13,  2.3556209498371093e-13,  2.3598886005508340e-13,  2.3641645004170985e-13,  2.3684486935008154e-13,  2.3727412240754024e-13,  2.3770421366248364e-13,  2.3813514758457209e-13,
                2.3856692866493702e-13,  2.3899956141639064e-13,  2.3943305037363735e-13,  2.3986740009348658e-13,  2.4030261515506722e-13,  2.4073870016004368e-13,  2.4117565973283354e-13,  2.4161349852082683e-13,
                2.4205222119460699e-13,  2.4249183244817352e-13,  2.4293233699916633e-13,  2.4337373958909183e-13,  2.4381604498355079e-13,  2.4425925797246798e-13,  2.4470338337032363e-13,  2.4514842601638674e-13,
                2.4559439077495020e-13,  2.4604128253556789e-13,  2.4648910621329363e-13,  2.4693786674892208e-13,  2.4738756910923165e-13,  2.4783821828722938e-13,  2.4828981930239785e-13,  2.4874237720094416e-13,
                2.4919589705605098e-13,  2.4965038396812970e-13,  2.5010584306507578e-13,  2.5056227950252618e-13,  2.5101969846411907e-13,  2.5147810516175573e-13,  2.5193750483586474e-13,  2.5239790275566843e-13,
                2.5285930421945164e-13,  2.5332171455483293e-13,  2.5378513911903803e-13,  2.5424958329917585e-13,  2.5471505251251684e-13,  2.5518155220677389e-13,  2.5564908786038571e-13,  2.5611766498280280e-13,
                2.5658728911477600e-13,  2.5705796582864760e-13,  2.5752970072864519e-13,  2.5800249945117815e-13,  2.5847636766513690e-13,  2.5895131107219485e-13,  2.5942733540711324e-13,  2.5990444643804874e-13,
                2.6038264996686397e-13,  2.6086195182944092e-13,  2.6134235789599731e-13,  2.6182387407140598e-13,  2.6230650629551724e-13,  2.6279026054348440e-13,  2.6327514282609228e-13,  2.6376115919008903e-13,
                2.6424831571852096e-13,  2.6473661853107078e-13,  2.6522607378439905e-13,  2.6571668767248891e-13,  2.6620846642699427e-13,  2.6670141631759134e-13,  2.6719554365233367e-13,  2.6769085477801068e-13,
                2.6818735608050970e-13,  2.6868505398518170e-13,  2.6918395495721058e-13,  2.6968406550198621e-13,  2.7018539216548120e-13,  2.7068794153463144e-13,  2.7119172023772054e-13,  2.7169673494476813e-13,
                2.7220299236792211e-13,  2.7271049926185493e-13,  2.7321926242416389e-13,  2.7372928869577558e-13,  2.7424058496135446e-13,  2.7475315814971571e-13,  2.7526701523424228e-13,  2.7578216323330638e-13,
                2.7629860921069525e-13,  2.7681636027604146e-13,  2.7733542358525773e-13,  2.7785580634097625e-13,  2.7837751579299274e-13,  2.7890055923871511e-13,  2.7942494402361694e-13,  2.7995067754169580e-13,
                2.8047776723593638e-13,  2.8100622059877871e-13,  2.8153604517259129e-13,  2.8206724855014934e-13,  2.8259983837511829e-13,  2.8313382234254241e-13,  2.8366920819933880e-13,  2.8420600374479675e-13,
                2.8474421683108253e-13,  2.8528385536374975e-13,  2.8582492730225529e-13,  2.8636744066048094e-13,  2.8691140350726077e-13,  2.8745682396691434e-13,  2.8800371021978587e-13,  2.8855207050278937e-13,
                2.8910191310995987e-13,  2.8965324639301084e-13,  2.9020607876189781e-13,  2.9076041868538840e-13,  2.9131627469163874e-13,  2.9187365536877641e-13,  2.9243256936549002e-13,  2.9299302539162548e-13,
                2.9355503221878904e-13,  2.9411859868095731e-13,  2.9468373367509414e-13,  2.9525044616177476e-13,  2.9581874516581692e-13,  2.9638863977691949e-13,  2.9696013915030838e-13,  2.9753325250738995e-13,
                2.9810798913641205e-13,  2.9868435839313280e-13,  2.9926236970149714e-13,  2.9984203255432140e-13,  3.0042335651398584e-13,  3.0100635121313540e-13,  3.0159102635538875e-13,  3.0217739171605573e-13,
                3.0276545714286331e-13,  3.0335523255669021e-13,  3.0394672795231031e-13,  3.0453995339914491e-13,  3.0513491904202415e-13,  3.0573163510195742e-13,  3.0633011187691323e-13,  3.0693035974260842e-13,
                3.0753238915330698e-13,  3.0813621064262856e-13,  3.0874183482436692e-13,  3.0934927239331825e-13,  3.0995853412611978e-13,  3.1056963088209856e-13,  3.1118257360413086e-13,  3.1179737331951200e-13,
                3.1241404114083709e-13,  3.1303258826689265e-13,  3.1365302598355928e-13,  3.1427536566472571e-13,  3.1489961877321414e-13,  3.1552579686171730e-13,  3.1615391157374722e-13,  3.1678397464459597e-13,
                3.1741599790230859e-13,  3.1804999326866825e-13,  3.1868597276019400e-13,  3.1932394848915117e-13,  3.1996393266457474e-13,  3.2060593759330572e-13,  3.2124997568104084e-13,  3.2189605943339581e-13,
                3.2254420145698223e-13,  3.2319441446049839e-13,  3.2384671125583433e-13,  3.2450110475919110e-13,  3.2515760799221471e-13,  3.2581623408314488e-13,  3.2647699626797877e-13,  3.2713990789165005e-13,
                3.2780498240922344e-13,  3.2847223338710505e-13,  3.2914167450426871e-13,  3.2981331955349857e-13,  3.3048718244264821e-13,  3.3116327719591652e-13,  3.3184161795514072e-13,  3.3252221898110659e-13,
                3.3320509465487634e-13,  3.3389025947913445e-13,  3.3457772807955154e-13,  3.3526751520616682e-13,  3.3595963573478923e-13,  3.3665410466841772e-13,  3.3735093713868087e-13,  3.3805014840729618e-13,
                3.3875175386754942e-13,  3.3945576904579433e-13,  3.4016220960297293e-13,  3.4087109133615697e-13,  3.4158243018011060e-13,  3.4229624220887488e-13,  3.4301254363737429e-13,  3.4373135082304575e-13,
                3.4445268026749039e-13,  3.4517654861814858e-13,  3.4590297266999852e-13,  3.4663196936727881e-13,  3.4736355580523546e-13,  3.4809774923189358e-13,  3.4883456704985447e-13,  3.4957402681811816e-13,
                3.5031614625393219e-13,  3.5106094323466686e-13,  3.5180843579971741e-13,  3.5255864215243371e-13,  3.5331158066207789e-13,  3.5406726986581026e-13,  3.5482572847070419e-13,  3.5558697535579040e-13,
                3.5635102957413105e-13,  3.5711791035492434e-13,  3.5788763710564001e-13,  3.5866022941418632e-13,  3.5943570705110913e-13,  3.6021408997182347e-13,  3.6099539831887844e-13,  3.6177965242425571e-13,
                3.6256687281170254e-13,  3.6335708019909966e-13,  3.6415029550086479e-13,  3.6494653983039242e-13,  3.6574583450253042e-13,  3.6654820103609424e-13,  3.6735366115641930e-13,  3.6816223679795234e-13,
                3.6897395010688234e-13,  3.6978882344381181e-13,  3.7060687938646911e-13,  3.7142814073246269e-13,  3.7225263050207780e-13,  3.7308037194111666e-13,  3.7391138852378276e-13,  3.7474570395561020e-13,
                3.7558334217643874e-13,  3.7642432736343569e-13,  3.7726868393416518e-13,  3.7811643654970597e-13,  3.7896761011781856e-13,  3.7982222979616256e-13,  3.8068032099556529e-13,  3.8154190938334259e-13,
                3.8240702088667271e-13,  3.8327568169602449e-13,  3.8414791826864072e-13,  3.8502375733207772e-13,  3.8590322588780235e-13,  3.8678635121484742e-13,  3.8767316087352673e-13,  3.8856368270921078e-13,
                3.8945794485616449e-13,  3.9035597574144793e-13,  3.9125780408888150e-13,  3.9216345892307667e-13,  3.9307296957353360e-13,  3.9398636567880707e-13,  3.9490367719074190e-13,  3.9582493437877932e-13,
                3.9675016783433574e-13,  3.9767940847525530e-13,  3.9861268755033766e-13,  3.9955003664394267e-13,  4.0049148768067328e-13,  4.0143707293013841e-13,  4.0238682501179733e-13,  4.0334077689988728e-13,
                4.0429896192843590e-13,  4.0526141379636036e-13,  4.0622816657265481e-13,  4.0719925470166812e-13,  4.0817471300847361e-13,  4.0915457670433287e-13,  4.1013888139225542e-13,  4.1112766307265636e-13,
                4.1212095814911398e-13,  4.1311880343422943e-13,  4.1412123615559070e-13,  4.1512829396184288e-13,  4.1614001492886725e-13,  4.1715643756607123e-13,  4.1817760082279180e-13,  4.1920354409481459e-13,
                4.2023430723101128e-13,  4.2126993054009782e-13,  4.2231045479751605e-13,  4.2335592125244137e-13,  4.2440637163491930e-13,  4.2546184816313365e-13,  4.2652239355080918e-13,  4.2758805101475183e-13,
                4.2865886428252930e-13,  4.2973487760029542e-13,  4.3081613574076116e-13,  4.3190268401131578e-13,  4.3299456826230140e-13,  4.3409183489544436e-13,  4.3519453087244706e-13,  4.3630270372374371e-13,
                4.3741640155742381e-13,  4.3853567306832723e-13,  4.3966056754731461e-13,  4.4079113489071730e-13,  4.4192742560997087e-13,  4.4306949084143634e-13,  4.4421738235641368e-13,  4.4537115257135183e-13,
                4.4653085455825993e-13,  4.4769654205532446e-13,  4.4886826947773711e-13,  4.5004609192873826e-13,  4.5123006521088136e-13,  4.5242024583752324e-13,  4.5361669104454584e-13,  4.5481945880231492e-13,
                4.5602860782788128e-13,  4.5724419759743053e-13,  4.5846628835898728e-13,  4.5969494114537991e-13,  4.6093021778747238e-13,  4.6217218092766951e-13,  4.6342089403370238e-13,  4.6467642141270098e-13,
                4.6593882822556089e-13,  4.6720818050161156e-13,  4.6848454515359352e-13,  4.6976798999295233e-13,  4.7105858374545724e-13,  4.7235639606715258e-13,  4.7366149756065053e-13,  4.7497395979177374e-13,
                4.7629385530655681e-13,  4.7762125764861583e-13,  4.7895624137689529e-13,  4.8029888208380231e-13,  4.8164925641373809e-13,  4.8300744208203681e-13,  4.8437351789432289e-13,  4.8574756376629727e-13,
                4.8712966074396422e-13,  4.8851989102431018e-13,  4.8991833797644673e-13,  4.9132508616322988e-13,  4.9274022136336869e-13,  4.9416383059403609e-13,  4.9559600213399554e-13,  4.9703682554725760e-13,
                4.9848639170728067e-13,  4.9994479282173077e-13,  5.0141212245781585e-13,  5.0288847556821023e-13,  5.0437394851758562e-13,  5.0586863910976557e-13,  5.0737264661552065e-13,  5.0888607180102239e-13,
                5.1040901695697448e-13,  5.1194158592844032e-13,  5.1348388414538683e-13,  5.1503601865396467e-13,  5.1659809814854625e-13,  5.1817023300454308e-13,  5.1975253531202511e-13,  5.2134511891016524e-13,
                5.2294809942253315e-13,  5.2456159429326312e-13,  5.2618572282412174e-13,  5.2782060621250203e-13,  5.2946636759037130e-13,  5.3112313206420147e-13,  5.3279102675591096e-13,  5.3447018084484884e-13,
                5.3616072561085251e-13,  5.3786279447841171e-13,  5.3957652306197248e-13,  5.4130204921241602e-13,  5.4303951306474867e-13,  5.4478905708704049e-13,  5.4655082613065117e-13,  5.4832496748178358e-13,
                5.5011163091440660e-13,  5.5191096874459038e-13,  5.5372313588629883e-13,  5.5554828990868578e-13,  5.5738659109494284e-13,  5.5923820250274899e-13,  5.6110329002637357e-13,  5.6298202246048642e-13,
                5.6487457156573094e-13,  5.6678111213611788e-13,  5.6870182206829985e-13,  5.7063688243278903e-13,  5.7258647754718265e-13,  5.7455079505146368e-13,  5.7653002598544633e-13,  5.7852436486843919e-13,
                5.8053400978120127e-13,  5.8255916245026934e-13,  5.8460002833473827e-13,  5.8665681671557883e-13,  5.8872974078758135e-13,  5.9081901775401687e-13,  5.9292486892411113e-13,  5.9504751981343088e-13,
                5.9718720024728567e-13,  5.9934414446725295e-13,  6.0151859124093843e-13,  6.0371078397508862e-13,  6.0592097083217693e-13,  6.0814940485059043e-13,  6.1039634406854913e-13,  6.1266205165189567e-13,
                6.1494679602589909e-13,  6.1725085101122245e-13,  6.1957449596421073e-13,  6.2191801592166207e-13,  6.2428170175025275e-13,  6.2666585030079357e-13,  6.2907076456750353e-13,  6.3149675385249454e-13,
                6.3394413393567007e-13,  6.3641322725024934e-13,  6.3890436306413870e-13,  6.4141787766738163e-13,  6.4395411456592957e-13,  6.4651342468198708e-13,  6.4909616656119642e-13,  6.5170270658693925e-13,
                6.5433341920204610e-13,  6.5698868713821813e-13,  6.5966890165348020e-13,  6.6237446277799950e-13,  6.6510577956862043e-13,  6.6786327037248302e-13,  6.7064736310011072e-13,  6.7345849550837181e-13,
                6.7629711549373933e-13,  6.7916368139629515e-13,  6.8205866231494655e-13,  6.8498253843434711e-13,  6.8793580136403914e-13,  6.9091895449036089e-13,  6.9393251334169046e-13,  6.9697700596762746e-13,
                7.0005297333274560e-13,  7.0316096972558202e-13,  7.0630156318356545e-13,  7.0947533593462189e-13,  7.1268288485623718e-13,  7.1592482195279747e-13,  7.1920177485207383e-13,  7.2251438732176486e-13,
                7.2586331980706186e-13,  7.2924924999025494e-13,  7.3267287337345596e-13,  7.3613490388557509e-13,  7.3963607451475280e-13,  7.4317713796751828e-13,  7.4675886735601932e-13,  7.5038205691474681e-13,
                7.5404752274826157e-13,  7.5775610361152040e-13,  7.6150866172449393e-13,  7.6530608362287129e-13,  7.6914928104675556e-13,  7.7303919186937100e-13,  7.7697678106792811e-13,  7.8096304173892629e-13,
                7.8499899616031744e-13,  7.8908569690310754e-13,  7.9322422799513799e-13,  7.9741570613996570e-13,  8.0166128199395054e-13,  8.0596214150486317e-13,  8.1031950731554551e-13,  8.1473464023639224e-13,
                8.1920884079067583e-13,  8.2374345083701098e-13,  8.2833985527354981e-13,  8.3299948382881672e-13,  8.3772381294443536e-13,  8.4251436775537111e-13,  8.4737272417371273e-13,  8.5230051108245062e-13,
                8.5729941264617790e-13,  8.6237117074614858e-13,  8.6751758754767782e-13,  8.7274052820846644e-13,  8.7804192373708029e-13,  8.8342377401151984e-13,  8.8888815096858093e-13,  8.9443720197554185e-13,
                9.0007315339661954e-13,  9.0579831436762766e-13,  9.1161508079334963e-13,  9.1752593958331873e-13,  9.2353347314298716e-13,  9.2964036413867631e-13,  9.3584940055624551e-13,  9.4216348107511012e-13,
                9.4858562078109829e-13,  9.5511895724367704e-13,  9.6176675698532345e-13,  9.6853242237328740e-13,  9.7541949896671594e-13,  9.8243168335511313e-13,  9.8957283152742801e-13,  9.9684696781473216e-13,
                1.0042582944535112e-12,  1.0118112018210971e-12,  1.0195102793997676e-12,  1.0273603275315911e-12,  1.0353663700322796e-12,  1.0435336677391967e-12,  1.0518677330763556e-12,  1.0603743457278300e-12,
                1.0690595695206104e-12,  1.0779297706287146e-12,  1.0869916372224483e-12,  1.0962522007003121e-12,  1.1057188586563584e-12,  1.1153993997530746e-12,  1.1253020306893848e-12,  1.1354354054754538e-12,
                1.1458086572510349e-12,  1.1564314329125674e-12,  1.1673139308466431e-12,  1.1784669421044253e-12,  1.1899018953938708e-12,  1.2016309063150067e-12,  1.2136668313190948e-12,  1.2260233269364642e-12,
                1.2387149148915483e-12,  1.2517570538089388e-12,  1.2651662183131096e-12,  1.2789599864393312e-12,  1.2931571364071353e-12,  1.3077777539640943e-12,  1.3228433516909588e-12,  1.3383770018746360e-12,
                1.3544034848095146e-12,  1.3709494546881371e-12,  1.3880436255988996e-12,  1.4057169805733030e-12,  1.4240030071331946e-12,  1.4429379633979754e-12,  1.4625611795461752e-12,  1.4829154003143962e-12,
                1.5040471752964555e-12,  1.5260073051237809e-12,  1.5488513532250709e-12,  1.5726402348566027e-12,  1.5974408975649675e-12,  1.6233271103226174e-12,  1.6503803824356112e-12,  1.6786910381900645e-12,
                1.7083594793824341e-12,  1.7394976757764400e-12,  1.7722309336982696e-12,  1.8067000061764990e-12,  1.8430636252957294e-12,  1.8815015602160447e-12,  1.9222183346620935e-12,  1.9654477785269281e-12,
                2.0114586437850770e-12,  2.0605615913407323e-12,  2.1131179619177676e-12,  2.1695508944537534e-12,  2.2303595708936724e-12,  2.2961376799101221e-12,  2.3675976566794747e-12,  2.4456029573667203e-12,
                2.5312117087968942e-12,  2.6257367815460324e-12,  2.7308301017662148e-12,  2.8486036338567521e-12,  2.9818074287273422e-12,  3.1340993952593458e-12,  3.3104681399217501e-12,  3.5179227623657886e-12,
                3.7666733671823461e-12,  4.0722730958600868e-12,  4.4597998424286876e-12,  4.9728278282868711e-12,  5.6952814572356245e-12,  6.8152753719066126e-12,  8.8737432991379953e-12,  1.4460918029522785e-11
            };
            // Density at the proper x-endpoints of the boxes, tail boxes treated specially: { 0, f(x_1), f(x_2), ..., f(x_{n - 1}) }.
            const result_type  m_bottom[n_boxes] = {
                0,                       9.5520989979610054e-5,   2.0136169602766317e-4,   3.1647709537059480e-4,   4.3805160756733828e-4,   5.6473684862373761e-4,   6.9572484863511400e-4,   8.3047093258402232e-4,
                9.6857998395206853e-4,   1.1097506232634540e-3,   1.2537444085547694e-3,   1.4003673669364223e-3,   1.5494582067905920e-3,   1.7008804187049896e-3,   1.8545167714108748e-3,   2.0102653515867037e-3,
                2.1680366370617805e-3,   2.3277512839777529e-3,   2.4893384207026996e-3,   2.6527343099026837e-3,   2.8178812835684897e-3,   2.9847268840626590e-3,   3.1532231631499277e-3,   3.3233261039014674e-3,
                3.4949951393889759e-3,   3.6681927485028471e-3,   3.8428841138687785e-3,   4.0190368302425342e-3,   4.1966206542961456e-3,   4.3756072886175003e-3,   4.5559701941997882e-3,   4.7376844268174919e-3,
                4.9207264935568584e-3,   5.1050742264525713e-3,   5.2907066707235622e-3,   5.4776039855326496e-3,   5.6657473555416748e-3,   5.8551189118145801e-3,   6.0457016608495539e-3,   6.2374794207087602e-3,
                6.4304367633686041e-3,   6.6245589625414570e-3,   6.8198319463263462e-3,   7.0162422541353188e-3,   7.2137769974171872e-3,   7.4124238237636990e-3,   7.6121708840368788e-3,   7.8130068022020134e-3,
                8.0149206475898189e-3,   8.2179019093448403e-3,   8.4219404728459688e-3,   8.6270265979098577e-3,   8.8331508986095872e-3,   9.0403043245596536e-3,   9.2484781435346898e-3,   9.4576639253035737e-3,
                9.6678535265730815e-3,   9.8790390769462044e-3,   1.0091212965809915e-2,   1.0304367830075682e-2,   1.0518496542703585e-2,   1.0733592201947549e-2,   1.0949648121265166e-2,   1.1166657819840853e-2,
                1.1384615013675808e-2,   1.1603513607202443e-2,   1.1823347685384730e-2,   1.2044111506269308e-2,   1.2265799493955199e-2,   1.2488406231952753e-2,   1.2711926456904885e-2,   1.2936355052645899e-2,
                1.3161687044575211e-2,   1.3387917594325103e-2,   1.3615041994703290e-2,   1.3843055664892590e-2,   1.4071954145891349e-2,   1.4301733096179517e-2,   1.4532388287596403e-2,   1.4763915601417175e-2,
                1.4996311024616117e-2,   1.5229570646305515e-2,   1.5463690654339851e-2,   1.5698667332075693e-2,   1.5934497055278350e-2,   1.6171176289166980e-2,   1.6408701585590378e-2,   1.6647069580326229e-2,
                1.6886276990497062e-2,   1.7126320612096590e-2,   1.7367197317620544e-2,   1.7608904053796471e-2,   1.7851437839407318e-2,   1.8094795763203967e-2,   1.8338974981902159e-2,   1.8583972718259541e-2,
                1.8829786259228832e-2,   1.9076412954183331e-2,   1.9323850213211230e-2,   1.9572095505475384e-2,   1.9821146357635407e-2,   2.0071000352329129e-2,   2.0321655126710618e-2,   2.0573108371042138e-2,
                2.0825357827337551e-2,   2.1078401288054824e-2,   2.1332236594835399e-2,   2.1586861637288360e-2,   2.1842274351817371e-2,   2.2098472720488541e-2,   2.2355454769937408e-2,   2.2613218570313369e-2,
                2.2871762234259947e-2,   2.3131083915929388e-2,   2.3391181810030133e-2,   2.3652054150905805e-2,   2.3913699211644416e-2,   2.4176115303216548e-2,   2.4439300773641341e-2,   2.4703254007179173e-2,
                2.4967973423549962e-2,   2.5233457477176080e-2,   2.5499704656448923e-2,   2.5766713483018210e-2,   2.6034482511103133e-2,   2.6303010326824542e-2,   2.6572295547557336e-2,   2.6842336821302342e-2,
                2.7113132826076912e-2,   2.7384682269323585e-2,   2.7656983887336121e-2,   2.7930036444702298e-2,   2.8203838733762845e-2,   2.8478389574085957e-2,   2.8753687811956813e-2,   2.9029732319881590e-2,
                2.9306521996105449e-2,   2.9584055764144014e-2,   2.9862332572327883e-2,   3.0141351393359717e-2,   3.0421111223883484e-2,   3.0701611084065447e-2,   3.0982850017186500e-2,   3.1264827089245486e-2,
                3.1547541388573117e-2,   3.1830992025456163e-2,   3.2115178131771571e-2,   3.2400098860630190e-2,   3.2685753386029805e-2,   3.2972140902517164e-2,   3.3259260624858737e-2,   3.3547111787719914e-2,
                3.3835693645352389e-2,   3.4125005471289476e-2,   3.4415046558049104e-2,   3.4705816216844269e-2,   3.4997313777300709e-2,   3.5289538587181587e-2,   3.5582490012118967e-2,   3.5876167435351893e-2,
                3.6170570257470861e-2,   3.6465697896168509e-2,   3.6761549785996334e-2,   3.7058125378127270e-2,   3.7355424140123953e-2,   3.7653445555712508e-2,   3.7952189124561713e-2,   3.8251654362067372e-2,
                3.8551840799141763e-2,   3.8852747982008017e-2,   3.9154375471999289e-2,   3.9456722845362589e-2,   3.9759789693067149e-2,   4.0063575620617202e-2,   4.0368080247869054e-2,   4.0673303208852325e-2,
                4.0979244151595269e-2,   4.1285902737954038e-2,   4.1593278643445814e-2,   4.1901371557085680e-2,   4.2210181181227159e-2,   4.2519707231406306e-2,   4.2829949436189273e-2,   4.3140907537023255e-2,
                4.3452581288090734e-2,   4.3764970456166929e-2,   4.4078074820480386e-2,   4.4391894172576614e-2,   4.4706428316184710e-2,   4.5021677067086880e-2,   4.5337640252990795e-2,   4.5654317713404724e-2,
                4.5971709299515348e-2,   4.6289814874068223e-2,   4.6608634311250810e-2,   4.6928167496578007e-2,   4.7248414326780147e-2,   4.7569374709693381e-2,   4.7891048564152394e-2,   4.8213435819885421e-2,
                4.8536536417411479e-2,   4.8860350307939787e-2,   4.9184877453271317e-2,   4.9510117825702427e-2,   4.9836071407930529e-2,   5.0162738192961751e-2,   5.0490118184020542e-2,   5.0818211394461187e-2,
                5.1147017847681176e-2,   5.1476537577036402e-2,   5.1806770625758139e-2,   5.2137717046871763e-2,   5.2469376903117179e-2,   5.2801750266870928e-2,   5.3134837220069912e-2,   5.3468637854136741e-2,
                5.3803152269906630e-2,   5.4138380577555842e-2,   5.4474322896531635e-2,   5.4810979355483675e-2,   5.5148350092196900e-2,   5.5486435253525793e-2,   5.5825234995330048e-2,   5.6164749482411583e-2,
                5.6504978888452900e-2,   5.6845923395956734e-2,   5.7187583196186994e-2,   5.7529958489110955e-2,   5.7873049483342680e-2,   5.8216856396087653e-2,   5.8561379453088590e-2,   5.8906618888572421e-2,
                5.9252574945198406e-2,   5.9599247874007373e-2,   5.9946637934372052e-2,   6.0294745393948490e-2,   6.0643570528628527e-2,   6.0993113622493304e-2,   6.1343374967767799e-2,   6.1694354864776365e-2,
                6.2046053621899248e-2,   6.2398471555530078e-2,   6.2751608990034309e-2,   6.3105466257708593e-2,   6.3460043698741071e-2,   6.3815341661172573e-2,   6.4171360500858695e-2,   6.4528100581432757e-2,
                6.4885562274269617e-2,   6.5243745958450324e-2,   6.5602652020727609e-2,   6.5962280855492186e-2,   6.6322632864739858e-2,   6.6683708458039417e-2,   6.7045508052501312e-2,   6.7408032072747097e-2,
                6.7771280950879618e-2,   6.8135255126453955e-2,   6.8499955046449082e-2,   6.8865381165240258e-2,   6.9231533944572120e-2,   6.9598413853532475e-2,   6.9966021368526778e-2,   7.0334356973253295e-2,
                7.0703421158678926e-2,   7.1073214423015686e-2,   7.1443737271697842e-2,   7.1814990217359685e-2,   7.2186973779813926e-2,   7.2559688486030732e-2,   7.2933134870117353e-2,   7.3307313473298371e-2,
                7.3682224843896542e-2,   7.4057869537314218e-2,   7.4434248116015363e-2,   7.4811361149508136e-2,   7.5189209214328040e-2,   7.5567792894021630e-2,   7.5947112779130778e-2,   7.6327169467177477e-2,
                7.6707963562649187e-2,   7.7089495676984710e-2,   7.7471766428560595e-2,   7.7854776442678057e-2,   7.8238526351550413e-2,   7.8623016794291025e-2,   7.9008248416901740e-2,   7.9394221872261835e-2,
                7.9780937820117438e-2,   8.0168396927071451e-2,   8.0556599866573936e-2,   8.0945547318912990e-2,   8.1335239971206078e-2,   8.1725678517391834e-2,   8.2116863658222329e-2,   8.2508796101255782e-2,
                8.2901476560849729e-2,   8.3294905758154639e-2,   8.3689084421107967e-2,   8.4084013284428647e-2,   8.4479693089612021e-2,   8.4876124584925192e-2,   8.5273308525402810e-2,   8.5671245672843271e-2,
                8.6069936795805341e-2,   8.6469382669605194e-2,   8.6869584076313856e-2,   8.7270541804755063e-2,   8.7672256650503519e-2,   8.8074729415883556e-2,   8.8477960909968193e-2,   8.8881951948578591e-2,
                8.9286703354283894e-2,   8.9692215956401468e-2,   9.0098490590997516e-2,   9.0505528100888088e-2,   9.0913329335640461e-2,   9.1321895151574902e-2,   9.1731226411766811e-2,   9.2141323986049226e-2,
                9.2552188751015712e-2,   9.2963821590023610e-2,   9.3376223393197653e-2,   9.3789395057433954e-2,   9.4203337486404343e-2,   9.4618051590561078e-2,   9.5033538287141904e-2,   9.5449798500175474e-2,
                9.5866833160487126e-2,   9.6284643205705003e-2,   9.6703229580266537e-2,   9.7122593235425274e-2,   9.7542735129258052e-2,   9.7963656226672520e-2,   9.8385357499415005e-2,   9.8807839926078727e-2,
                9.9231104492112349e-2,   9.9655152189828869e-2,   1.0007998401841486e-1,   1.0050560098394004e-1,   1.0093200409936718e-1,   1.0135919438456234e-1,   1.0178717286630549e-1,   1.0221594057830137e-1,
                1.0264549856119080e-1,   1.0307584786256222e-1,   1.0350698953696360e-1,   1.0393892464591474e-1,   1.0437165425791980e-1,   1.0480517944848020e-1,   1.0523950130010790e-1,   1.0567462090233894e-1,
                1.0611053935174731e-1,   1.0654725775195923e-1,   1.0698477721366763e-1,   1.0742309885464709e-1,   1.0786222379976898e-1,   1.0830215318101705e-1,   1.0874288813750322e-1,   1.0918442981548384e-1,
                1.0962677936837610e-1,   1.1006993795677496e-1,   1.1051390674847022e-1,   1.1095868691846408e-1,   1.1140427964898891e-1,   1.1185068612952535e-1,   1.1229790755682086e-1,   1.1274594513490844e-1,
                1.1319480007512574e-1,   1.1364447359613455e-1,   1.1409496692394052e-1,   1.1454628129191327e-1,   1.1499841794080680e-1,   1.1545137811878027e-1,   1.1590516308141904e-1,   1.1635977409175610e-1,
                1.1681521242029377e-1,   1.1727147934502583e-1,   1.1772857615145984e-1,   1.1818650413263991e-1,   1.1864526458916975e-1,   1.1910485882923606e-1,   1.1956528816863222e-1,   1.2002655393078243e-1,
                1.2048865744676599e-1,   1.2095160005534213e-1,   1.2141538310297501e-1,   1.2188000794385913e-1,   1.2234547593994510e-1,   1.2281178846096569e-1,   1.2327894688446224e-1,   1.2374695259581148e-1,
                1.2421580698825256e-1,   1.2468551146291454e-1,   1.2515606742884418e-1,   1.2562747630303406e-1,   1.2609973951045111e-1,   1.2657285848406538e-1,   1.2704683466487930e-1,   1.2752166950195715e-1,
                1.2799736445245502e-1,   1.2847392098165098e-1,   1.2895134056297575e-1,   1.2942962467804364e-1,   1.2990877481668383e-1,   1.3038879247697211e-1,   1.3086967916526289e-1,   1.3135143639622163e-1,
                1.3183406569285756e-1,   1.3231756858655690e-1,   1.3280194661711632e-1,   1.3328720133277684e-1,   1.3377333429025806e-1,   1.3426034705479284e-1,   1.3474824120016228e-1,   1.3523701830873112e-1,
                1.3572667997148349e-1,   1.3621722778805909e-1,   1.3670866336678974e-1,   1.3720098832473626e-1,   1.3769420428772584e-1,   1.3818831289038972e-1,   1.3868331577620131e-1,   1.3917921459751472e-1,
                1.3967601101560359e-1,   1.4017370670070047e-1,   1.4067230333203651e-1,   1.4117180259788154e-1,   1.4167220619558465e-1,   1.4217351583161511e-1,   1.4267573322160370e-1,   1.4317886009038452e-1,
                1.4368289817203718e-1,   1.4418784920992936e-1,   1.4469371495675994e-1,   1.4520049717460240e-1,   1.4570819763494877e-1,   1.4621681811875392e-1,   1.4672636041648039e-1,   1.4723682632814357e-1,
                1.4774821766335737e-1,   1.4826053624138033e-1,   1.4877378389116221e-1,   1.4928796245139092e-1,   1.4980307377054009e-1,   1.5031911970691693e-1,   1.5083610212871066e-1,   1.5135402291404136e-1,
                1.5187288395100929e-1,   1.5239268713774473e-1,   1.5291343438245825e-1,   1.5343512760349145e-1,   1.5395776872936827e-1,   1.5448135969884666e-1,   1.5500590246097089e-1,   1.5553139897512423e-1,
                1.5605785121108221e-1,   1.5658526114906634e-1,   1.5711363077979838e-1,   1.5764296210455507e-1,   1.5817325713522345e-1,   1.5870451789435661e-1,   1.5923674641523005e-1,   1.5976994474189853e-1,
                1.6030411492925347e-1,   1.6083925904308083e-1,   1.6137537916011966e-1,   1.6191247736812106e-1,   1.6245055576590778e-1,   1.6298961646343434e-1,   1.6352966158184776e-1,   1.6407069325354876e-1,
                1.6461271362225366e-1,   1.6515572484305673e-1,   1.6569972908249323e-1,   1.6624472851860299e-1,   1.6679072534099453e-1,   1.6733772175090991e-1,   1.6788571996129003e-1,   1.6843472219684068e-1,
                1.6898473069409907e-1,   1.6953574770150111e-1,   1.7008777547944922e-1,   1.7064081630038079e-1,   1.7119487244883732e-1,   1.7174994622153416e-1,   1.7230603992743091e-1,   1.7286315588780247e-1,
                1.7342129643631077e-1,   1.7398046391907713e-1,   1.7454066069475536e-1,   1.7510188913460543e-1,   1.7566415162256796e-1,   1.7622745055533929e-1,   1.7679178834244729e-1,   1.7735716740632791e-1,
                1.7792359018240239e-1,   1.7849105911915521e-1,   1.7905957667821276e-1,   1.7962914533442278e-1,   1.8019976757593445e-1,   1.8077144590427937e-1,   1.8134418283445314e-1,   1.8191798089499780e-1,
                1.8249284262808503e-1,   1.8306877058960009e-1,   1.8364576734922658e-1,   1.8422383549053197e-1,   1.8480297761105397e-1,   1.8538319632238762e-1,   1.8596449425027333e-1,   1.8654687403468563e-1,
                1.8713033832992282e-1,   1.8771488980469740e-1,   1.8830053114222744e-1,   1.8888726504032873e-1,   1.8947509421150785e-1,   1.9006402138305607e-1,   1.9065404929714419e-1,   1.9124518071091823e-1,
                1.9183741839659604e-1,   1.9243076514156485e-1,   1.9302522374847971e-1,   1.9362079703536287e-1,   1.9421748783570411e-1,   1.9481529899856205e-1,   1.9541423338866634e-1,   1.9601429388652095e-1,
                1.9661548338850831e-1,   1.9721780480699456e-1,   1.9782126107043571e-1,   1.9842585512348490e-1,   1.9903158992710063e-1,   1.9963846845865604e-1,   2.0024649371204926e-1,   2.0085566869781478e-1,
                2.0146599644323595e-1,   2.0207747999245852e-1,   2.0269012240660528e-1,   2.0330392676389184e-1,   2.0391889615974347e-1,   2.0453503370691313e-1,   2.0515234253560063e-1,   2.0577082579357295e-1,
                2.0639048664628568e-1,   2.0701132827700574e-1,   2.0763335388693519e-1,   2.0825656669533636e-1,   2.0888096993965810e-1,   2.0950656687566336e-1,   2.1013336077755792e-1,   2.1076135493812050e-1,
                2.1139055266883407e-1,   2.1202095730001848e-1,   2.1265257218096439e-1,   2.1328540068006856e-1,   2.1391944618497043e-1,   2.1455471210269008e-1,   2.1519120185976759e-1,   2.1582891890240372e-1,
                2.1646786669660206e-1,   2.1710804872831256e-1,   2.1774946850357650e-1,   2.1839212954867293e-1,   2.1903603541026658e-1,   2.1968118965555721e-1,   2.2032759587243056e-1,   2.2097525766961070e-1,
                2.2162417867681405e-1,   2.2227436254490482e-1,   2.2292581294605220e-1,   2.2357853357388894e-1,   2.2423252814367175e-1,   2.2488780039244316e-1,   2.2554435407919519e-1,   2.2620219298503454e-1,
                2.2686132091334962e-1,   2.2752174168997919e-1,   2.2818345916338278e-1,   2.2884647720481288e-1,   2.2951079970848888e-1,   2.3017643059177282e-1,   2.3084337379534695e-1,   2.3151163328339319e-1,
                2.3218121304377440e-1,   2.3285211708821753e-1,   2.3352434945249877e-1,   2.3419791419663053e-1,   2.3487281540505047e-1,   2.3554905718681248e-1,   2.3622664367577966e-1,   2.3690557903081937e-1,
                2.3758586743600030e-1,   2.3826751310079170e-1,   2.3895052026026462e-1,   2.3963489317529543e-1,   2.4032063613277135e-1,   2.4100775344579833e-1,   2.4169624945391106e-1,   2.4238612852328524e-1,
                2.4307739504695220e-1,   2.4377005344501574e-1,   2.4446410816487140e-1,   2.4515956368142804e-1,   2.4585642449733183e-1,   2.4655469514319275e-1,   2.4725438017781343e-1,   2.4795548418842059e-1,
                2.4865801179089900e-1,   2.4936196763002793e-1,   2.5006735637972030e-1,   2.5077418274326442e-1,   2.5148245145356834e-1,   2.5219216727340703e-1,   2.5290333499567219e-1,   2.5361595944362488e-1,
                2.5433004547115096e-1,   2.5504559796301939e-1,   2.5576262183514342e-1,   2.5648112203484467e-1,   2.5720110354112024e-1,   2.5792257136491277e-1,   2.5864553054938363e-1,   2.5936998617018907e-1,
                2.6009594333575966e-1,   2.6082340718758279e-1,   2.6155238290048845e-1,   2.6228287568293822e-1,   2.6301489077731766e-1,   2.6374843346023196e-1,   2.6448350904280507e-1,   2.6522012287098221e-1,
                2.6595828032583592e-1,   2.6669798682387567e-1,   2.6743924781736105e-1,   2.6818206879461856e-1,   2.6892645528036219e-1,   2.6967241283601771e-1,   2.7041994706005071e-1,   2.7116906358829860e-1,
                2.7191976809430644e-1,   2.7267206628966682e-1,   2.7342596392436367e-1,   2.7418146678712021e-1,   2.7493858070575108e-1,   2.7569731154751862e-1,   2.7645766521949338e-1,   2.7721964766891908e-1,
                2.7798326488358183e-1,   2.7874852289218389e-1,   2.7951542776472191e-1,   2.8028398561286974e-1,   2.8105420259036597e-1,   2.8182608489340611e-1,   2.8259963876103959e-1,   2.8337487047557163e-1,
                2.8415178636297006e-1,   2.8493039279327712e-1,   2.8571069618102636e-1,   2.8649270298566468e-1,   2.8727641971197968e-1,   2.8806185291053224e-1,   2.8884900917809452e-1,   2.8963789515809351e-1,
                2.9042851754106005e-1,   2.9122088306508358e-1,   2.9201499851627253e-1,   2.9281087072922068e-1,   2.9360850658747925e-1,   2.9440791302403520e-1,   2.9520909702179542e-1,   2.9601206561407731e-1,
                2.9681682588510549e-1,   2.9762338497051500e-1,   2.9843175005786095e-1,   2.9924192838713478e-1,   3.0005392725128719e-1,   3.0086775399675787e-1,   3.0168341602401221e-1,   3.0250092078808490e-1,
                3.0332027579913078e-1,   3.0414148862298290e-1,   3.0496456688171789e-1,   3.0578951825422889e-1,   3.0661635047680602e-1,   3.0744507134372462e-1,   3.0827568870784130e-1,   3.0910821048119800e-1,
                3.0994264463563413e-1,   3.1077899920340697e-1,   3.1161728227782046e-1,   3.1245750201386246e-1,   3.1329966662885073e-1,   3.1414378440308762e-1,   3.1498986368052382e-1,   3.1583791286943110e-1,
                3.1668794044308438e-1,   3.1753995494045312e-1,   3.1839396496690236e-1,   3.1924997919490344e-1,   3.2010800636475455e-1,   3.2096805528531150e-1,   3.2183013483472852e-1,   3.2269425396120960e-1,
                3.2356042168377039e-1,   3.2442864709301078e-1,   3.2529893935189856e-1,   3.2617130769656413e-1,   3.2704576143710655e-1,   3.2792230995841117e-1,   3.2880096272097893e-1,   3.2968172926176767e-1,
                3.3056461919504553e-1,   3.3144964221325672e-1,   3.3233680808789993e-1,   3.3322612667041949e-1,   3.3411760789310956e-1,   3.3501126177003164e-1,   3.3590709839794555e-1,   3.3680512795725419e-1,
                3.3770536071296225e-1,   3.3860780701564922e-1,   3.3951247730245690e-1,   3.4041938209809170e-1,   3.4132853201584194e-1,   3.4223993775861053e-1,   3.4315361011996326e-1,   3.4406955998519292e-1,
                3.4498779833239970e-1,   3.4590833623358803e-1,   3.4683118485578021e-1,   3.4775635546214722e-1,   3.4868385941315693e-1,   3.4961370816774005e-1,   3.5054591328447424e-1,   3.5148048642278666e-1,
                3.5241743934417528e-1,   3.5335678391344944e-1,   3.5429853209998981e-1,   3.5524269597902840e-1,   3.5618928773294879e-1,   3.5713831965260701e-1,   3.5808980413867361e-1,   3.5904375370299716e-1,
                3.6000018096998968e-1,   3.6095909867803448e-1,   3.6192051968091673e-1,   3.6288445694927736e-1,   3.6385092357209059e-1,   3.6481993275816570e-1,   3.6579149783767350e-1,   3.6676563226369791e-1,
                3.6774234961381328e-1,   3.6872166359168783e-1,   3.6970358802871395e-1,   3.7068813688566566e-1,   3.7167532425438399e-1,   3.7266516435949073e-1,   3.7365767156013123e-1,   3.7465286035174672e-1,
                3.7565074536787698e-1,   3.7665134138199371e-1,   3.7765466330936555e-1,   3.7866072620895512e-1,   3.7966954528534905e-1,   3.8068113589072140e-1,   3.8169551352683146e-1,   3.8271269384705649e-1,
                3.8373269265846016e-1,   3.8475552592389758e-1,   3.8578120976415755e-1,   3.8680976046014302e-1,   3.8784119445509037e-1,   3.8887552835682858e-1,   3.8991277894007905e-1,   3.9095296314879697e-1,
                3.9199609809855519e-1,   3.9304220107897151e-1,   3.9409128955618043e-1,   3.9514338117535027e-1,   3.9619849376324668e-1,   3.9725664533084367e-1,   3.9831785407598324e-1,   3.9938213838608457e-1,
                4.0044951684090410e-1,   4.0152000821534752e-1,   4.0259363148233499e-1,   4.0367040581572071e-1,   4.0475035059326820e-1,   4.0583348539968254e-1,   4.0691983002970090e-1,   4.0800940449124285e-1,
                4.0910222900862161e-1,   4.1019832402581806e-1,   4.1129771020981863e-1,   4.1240040845401889e-1,   4.1350643988169426e-1,   4.1461582584953957e-1,   4.1572858795127900e-1,   4.1684474802134837e-1,
                4.1796432813865122e-1,   4.1908735063039084e-1,   4.2021383807597987e-1,   4.2134381331102955e-1,   4.2247729943142052e-1,   4.2361431979745733e-1,   4.2475489803810863e-1,   4.2589905805533529e-1,
                4.2704682402850873e-1,   4.2819822041892169e-1,   4.2935327197439380e-1,   4.3051200373397451e-1,   4.3167444103274576e-1,   4.3284060950672715e-1,   4.3401053509788612e-1,   4.3518424405925603e-1,
                4.3636176296016497e-1,   4.3754311869157816e-1,   4.3872833847155709e-1,   4.3991744985083848e-1,   4.4111048071853620e-1,   4.4230745930796966e-1,   4.4350841420262199e-1,   4.4471337434223153e-1,
                4.4592236902902041e-1,   4.4713542793406395e-1,   4.4835258110380473e-1,   4.4957385896671551e-1,   4.5079929234011499e-1,   4.5202891243714089e-1,   4.5326275087388476e-1,   4.5450083967669299e-1,
                4.5574321128963903e-1,   4.5698989858217149e-1,   4.5824093485694346e-1,   4.5949635385782805e-1,   4.6075618977812583e-1,   4.6202047726896971e-1,   4.6328925144793307e-1,   4.6456254790784721e-1,
                4.6584040272583446e-1,   4.6712285247256322e-1,   4.6840993422173186e-1,   4.6970168555978825e-1,   4.7099814459589230e-1,   4.7229934997212877e-1,   4.7360534087397819e-1,   4.7491615704105399e-1,
                4.7623183877811390e-1,   4.7755242696635456e-1,   4.7887796307499800e-1,   4.8020848917317941e-1,   4.8154404794214586e-1,   4.8288468268777586e-1,   4.8423043735343017e-1,   4.8558135653314467e-1,
                4.8693748548517648e-1,   4.8829887014591491e-1,   4.8966555714416932e-1,   4.9103759381584651e-1,   4.9241502821903065e-1,   4.9379790914947935e-1,   4.9518628615654989e-1,   4.9658020955957044e-1,
                4.9797973046467153e-1,   4.9938490078209352e-1,   5.0079577324398685e-1,   5.0221240142272215e-1,   5.0363483974972831e-1,   5.0506314353487711e-1,   5.0649736898643396e-1,   5.0793757323159512e-1,
                5.0938381433763257e-1,   5.1083615133366864e-1,   5.1229464423310350e-1,   5.1375935405671955e-1,   5.1523034285648786e-1,   5.1670767374010297e-1,   5.1819141089627336e-1,   5.1968161962079625e-1,
                5.2117836634344675e-1,   5.2268171865571255e-1,   5.2419174533940690e-1,   5.2570851639619414e-1,   5.2723210307806357e-1,   5.2876257791878913e-1,   5.3030001476641415e-1,   5.3184448881680235e-1,
                5.3339607664829806e-1,   5.3495485625754086e-1,   5.3652090709648195e-1,   5.3809431011065195e-1,   5.3967514777873214e-1,   5.4126350415348384e-1,   5.4285946490409335e-1,   5.4446311735999264e-1,
                5.4607455055621929e-1,   5.4769385528038204e-1,   5.4932112412130222e-1,   5.5095645151940442e-1,   5.5259993381893415e-1,   5.5425166932208387e-1,   5.5591175834511344e-1,   5.5758030327655551e-1,
                5.5925740863760123e-1,   5.6094318114476693e-1,   5.6263772977494795e-1,   5.6434116583297171e-1,   5.6605360302176824e-1,   5.6777515751528331e-1,   5.6950594803426610e-1,   5.7124609592507133e-1,
                5.7299572524162341e-1,   5.7475496283069922e-1,   5.7652393842069505e-1,   5.7830278471405334e-1,   5.8009163748353517e-1,   5.8189063567253583e-1,   5.8369992149965303e-1,   5.8551964056772992e-1,
                5.8734994197760923e-1,   5.8919097844684960e-1,   5.9104290643367120e-1,   5.9290588626641473e-1,   5.9478008227881655e-1,   5.9666566295142235e-1,   5.9856280105948311e-1,   6.0047167382770021e-1,
                6.0239246309221112e-1,   6.0432535547023408e-1,   6.0627054253781873e-1,   6.0822822101618103e-1,   6.1019859296713452e-1,   6.1218186599816620e-1,   6.1417825347774513e-1,   6.1618797476149442e-1,
                6.1821125542990381e-1,   6.2024832753831056e-1,   6.2229942987993105e-1,   6.2436480826278526e-1,   6.2644471580142119e-1,   6.2853941322441715e-1,   6.3064916919871693e-1,   6.3277426067193757e-1,
                6.3491497323388124e-1,   6.3707160149858427e-1,   6.3924444950834649e-1,   6.4143383116130589e-1,   6.4364007066425655e-1,   6.4586350301255462e-1,   6.4810447449911848e-1,   6.5036334325470691e-1,
                6.5264047982185575e-1,   6.5493626776507012e-1,   6.5725110432010975e-1,   6.5958540108547071e-1,   6.6193958475946239e-1,   6.6431409792660643e-1,   6.6670939989744977e-1,   6.6912596760629112e-1,
                6.7156429657177447e-1,   6.7402490192581209e-1,   6.7650831951686861e-1,   6.7901510709427707e-1,   6.8154584558097641e-1,   6.8410114044286906e-1,   6.8668162316391032e-1,   6.8928795283707439e-1,
                6.9192081788251098e-1,   6.9458093790553557e-1,   6.9726906570860717e-1,   6.9998598947317140e-1,   7.0273253512921721e-1,   7.0550956893265288e-1,   7.0831800027320116e-1,   7.1115878473850017e-1,
                7.1403292746354684e-1,   7.1694148679861508e-1,   7.1988557833342142e-1,   7.2286637932071765e-1,   7.2588513354880904e-1,   7.2894315671990640e-1,   7.3204184239993903e-1,   7.3518266861575147e-1,
                7.3836720518781110e-1,   7.4159712190107678e-1,   7.4487419763403264e-1,   7.4820033058671730e-1,   7.5157754977368609e-1,   7.5500802797825586e-1,   7.5849409640140545e-1,   7.6203826128401553e-1,
                7.6564322283689414e-1,   7.6931189688206536e-1,   7.7304743969478977e-1,   7.7685327664361434e-1,   7.8073313536191317e-1,   7.8469108435761629e-1,   7.8873157818998523e-1,   7.9285951062963565e-1,
                7.9708027759305471e-1,   8.0139985213719996e-1,   8.0582487445824048e-1,   8.1036276072564085e-1,   8.1502183579281451e-1,   8.1981149649823861e-1,   8.2474241461710611e-1,   8.2982679186750081e-1,
                8.3507868422550068e-1,   8.4051441997723693e-1,   8.4615314677693345e-1,   8.5201755976321174e-1,   8.5813488948370389e-1,   8.6453827217539898e-1,   8.7126869937479101e-1,   8.7837787556918748e-1,
                8.8593255717277708e-1,   8.9402142663239159e-1,   9.0276656651186919e-1,   9.1234391374237797e-1,   9.2302298018297055e-1,   9.3525350397744639e-1,   9.4988919638841768e-1,   9.6894541501099236e-1
            };
            // (<diameter> + 1)-scaled probability of simple coverage of the boxes: { (x_1 - m) / (x_0* - m), (x_2 - m) / (x_1 - m), ..., (x_n - m) / (x_{n - 1} - m) }.
            const uniform_type m_coverage_scaled[n_boxes] = {
                1938098975,    1974463770,    2033390331,    2060849982,    2076942036,    2087590078,    2095192233,    2100910860,
                2105380025,    2108975992,    2111936626,    2114419915,    2116535039,    2118359953,    2119951852,    2121353689,
                2122598366,    2123711528,    2124713473,    2125620479,    2126445762,    2127200166,    2127892677,    2128530805,
                2129120878,    2129668268,    2130177564,    2130652713,    2131097128,    2131513776,    2131905249,    2132273822,
                2132621500,    2132950057,    2133261072,    2133555948,    2133835944,    2134102188,    2134355694,    2134597380,
                2134828075,    2135048532,    2135259433,    2135461405,    2135655015,    2135840786,    2136019197,    2136190687,
                2136355661,    2136514492,    2136667526,    2136815082,    2136957456,    2137094922,    2137227735,    2137356133,
                2137480339,    2137600557,    2137716981,    2137829793,    2137939160,    2138045242,    2138148187,    2138248135,
                2138345218,    2138439559,    2138531276,    2138620477,    2138707267,    2138791744,    2138874001,    2138954125,
                2139032200,    2139108305,    2139182513,    2139254897,    2139325523,    2139394456,    2139461756,    2139527481,
                2139591687,    2139654426,    2139715749,    2139775702,    2139834333,    2139891684,    2139947798,    2140002713,
                2140056469,    2140109101,    2140160646,    2140211135,    2140260602,    2140309077,    2140356590,    2140403169,
                2140448841,    2140493632,    2140537568,    2140580673,    2140622970,    2140664482,    2140705229,    2140745233,
                2140784514,    2140823090,    2140860981,    2140898205,    2140934778,    2140970717,    2141006039,    2141040759,
                2141074892,    2141108452,    2141141454,    2141173911,    2141205836,    2141237242,    2141268141,    2141298544,
                2141328464,    2141357912,    2141386898,    2141415433,    2141443527,    2141471190,    2141498431,    2141525259,
                2141551684,    2141577714,    2141603358,    2141628623,    2141653518,    2141678051,    2141702229,    2141726059,
                2141749548,    2141772704,    2141795533,    2141818041,    2141840235,    2141862121,    2141883705,    2141904993,
                2141925991,    2141946703,    2141967136,    2141987295,    2142007185,    2142026811,    2142046177,    2142065289,
                2142084150,    2142102767,    2142121142,    2142139281,    2142157187,    2142174864,    2142192317,    2142209550,
                2142226565,    2142243367,    2142259960,    2142276347,    2142292531,    2142308516,    2142324305,    2142339902,
                2142355308,    2142370529,    2142385565,    2142400422,    2142415100,    2142429604,    2142443935,    2142458097,
                2142472092,    2142485923,    2142499592,    2142513101,    2142526454,    2142539652,    2142552698,    2142565594,
                2142578342,    2142590945,    2142603403,    2142615721,    2142627899,    2142639940,    2142651845,    2142663616,
                2142675256,    2142686766,    2142698148,    2142709404,    2142720535,    2142731543,    2142742430,    2142753198,
                2142763847,    2142774380,    2142784798,    2142795103,    2142805296,    2142815379,    2142825352,    2142835218,
                2142844978,    2142854633,    2142864184,    2142873633,    2142882981,    2142892229,    2142901379,    2142910431,
                2142919388,    2142928249,    2142937017,    2142945692,    2142954275,    2142962768,    2142971171,    2142979486,
                2142987714,    2142995855,    2143003911,    2143011883,    2143019771,    2143027577,    2143035301,    2143042944,
                2143050508,    2143057993,    2143065400,    2143072729,    2143079983,    2143087161,    2143094264,    2143101293,
                2143108250,    2143115134,    2143121946,    2143128688,    2143135359,    2143141962,    2143148495,    2143154961,
                2143161359,    2143167691,    2143173957,    2143180157,    2143186293,    2143192365,    2143198374,    2143204320,
                2143210204,    2143216026,    2143221787,    2143227488,    2143233129,    2143238711,    2143244234,    2143249700,
                2143255107,    2143260458,    2143265751,    2143270989,    2143276172,    2143281299,    2143286372,    2143291390,
                2143296355,    2143301267,    2143306127,    2143310934,    2143315689,    2143320393,    2143325046,    2143329649,
                2143334202,    2143338705,    2143343159,    2143347564,    2143351920,    2143356229,    2143360490,    2143364703,
                2143368870,    2143372991,    2143377065,    2143381093,    2143385076,    2143389014,    2143392907,    2143396756,
                2143400561,    2143404322,    2143408040,    2143411714,    2143415346,    2143418935,    2143422482,    2143425988,
                2143429451,    2143432874,    2143436256,    2143439596,    2143442897,    2143446157,    2143449378,    2143452559,
                2143455701,    2143458803,    2143461867,    2143464892,    2143467879,    2143470828,    2143473740,    2143476613,
                2143479450,    2143482249,    2143485012,    2143487737,    2143490427,    2143493080,    2143495698,    2143498279,
                2143500826,    2143503336,    2143505812,    2143508253,    2143510659,    2143513031,    2143515368,    2143517672,
                2143519941,    2143522177,    2143524379,    2143526548,    2143528683,    2143530786,    2143532855,    2143534893,
                2143536897,    2143538869,    2143540810,    2143542718,    2143544594,    2143546439,    2143548252,    2143550033,
                2143551784,    2143553503,    2143555192,    2143556849,    2143558476,    2143560073,    2143561639,    2143563175,
                2143564681,    2143566157,    2143567603,    2143569020,    2143570406,    2143571764,    2143573092,    2143574391,
                2143575660,    2143576901,    2143578113,    2143579296,    2143580451,    2143581577,    2143582674,    2143583743,
                2143584784,    2143585797,    2143586782,    2143587739,    2143588668,    2143589570,    2143590444,    2143591290,
                2143592109,    2143592900,    2143593665,    2143594402,    2143595112,    2143595795,    2143596451,    2143597080,
                2143597682,    2143598258,    2143598807,    2143599330,    2143599826,    2143600296,    2143600739,    2143601156,
                2143601547,    2143601912,    2143602250,    2143602563,    2143602850,    2143603111,    2143603346,    2143603555,
                2143603739,    2143603897,    2143604029,    2143604136,    2143604217,    2143604273,    2143604303,    2143604308,
                2143604288,    2143604243,    2143604172,    2143604076,    2143603955,    2143603809,    2143603638,    2143603442,
                2143603221,    2143602974,    2143602703,    2143602408,    2143602087,    2143601741,    2143601371,    2143600976,
                2143600556,    2143600111,    2143599642,    2143599148,    2143598630,    2143598087,    2143597519,    2143596927,
                2143596310,    2143595668,    2143595003,    2143594312,    2143593597,    2143592858,    2143592094,    2143591306,
                2143590493,    2143589656,    2143588794,    2143587908,    2143586997,    2143586062,    2143585103,    2143584119,
                2143583111,    2143582078,    2143581021,    2143579940,    2143578834,    2143577704,    2143576549,    2143575370,
                2143574166,    2143572938,    2143571686,    2143570409,    2143569107,    2143567781,    2143566431,    2143565056,
                2143563656,    2143562232,    2143560784,    2143559310,    2143557812,    2143556290,    2143554743,    2143553171,
                2143551574,    2143549953,    2143548307,    2143546636,    2143544940,    2143543220,    2143541474,    2143539704,
                2143537909,    2143536088,    2143534243,    2143532373,    2143530477,    2143528557,    2143526611,    2143524640,
                2143522644,    2143520623,    2143518576,    2143516504,    2143514407,    2143512284,    2143510136,    2143507962,
                2143505762,    2143503537,    2143501286,    2143499009,    2143496707,    2143494378,    2143492024,    2143489644,
                2143487237,    2143484805,    2143482346,    2143479861,    2143477350,    2143474813,    2143472249,    2143469659,
                2143467042,    2143464398,    2143461728,    2143459031,    2143456307,    2143453556,    2143450778,    2143447974,
                2143445142,    2143442283,    2143439396,    2143436482,    2143433541,    2143430572,    2143427576,    2143424552,
                2143421500,    2143418420,    2143415312,    2143412176,    2143409012,    2143405820,    2143402599,    2143399350,
                2143396072,    2143392766,    2143389431,    2143386067,    2143382674,    2143379252,    2143375801,    2143372320,
                2143368811,    2143365271,    2143361703,    2143358104,    2143354476,    2143350817,    2143347129,    2143343410,
                2143339661,    2143335882,    2143332072,    2143328232,    2143324360,    2143320458,    2143316525,    2143312560,
                2143308564,    2143304537,    2143300478,    2143296387,    2143292265,    2143288110,    2143283924,    2143279705,
                2143275453,    2143271169,    2143266852,    2143262502,    2143258120,    2143253704,    2143249254,    2143244772,
                2143240255,    2143235705,    2143231120,    2143226501,    2143221849,    2143217161,    2143212439,    2143207682,
                2143202890,    2143198062,    2143193200,    2143188301,    2143183367,    2143178397,    2143173391,    2143168348,
                2143163269,    2143158153,    2143153001,    2143147811,    2143142584,    2143137319,    2143132016,    2143126676,
                2143121297,    2143115880,    2143110425,    2143104930,    2143099397,    2143093824,    2143088212,    2143082560,
                2143076868,    2143071136,    2143065364,    2143059551,    2143053697,    2143047802,    2143041865,    2143035887,
                2143029867,    2143023805,    2143017700,    2143011553,    2143005363,    2142999129,    2142992853,    2142986532,
                2142980167,    2142973758,    2142967305,    2142960806,    2142954262,    2142947673,    2142941039,    2142934358,
                2142927630,    2142920856,    2142914035,    2142907167,    2142900251,    2142893288,    2142886276,    2142879215,
                2142872105,    2142864947,    2142857738,    2142850480,    2142843171,    2142835812,    2142828402,    2142820940,
                2142813427,    2142805861,    2142798243,    2142790573,    2142782849,    2142775071,    2142767239,    2142759353,
                2142751413,    2142743417,    2142735365,    2142727258,    2142719094,    2142710873,    2142702594,    2142694258,
                2142685864,    2142677412,    2142668900,    2142660328,    2142651697,    2142643005,    2142634253,    2142625439,
                2142616563,    2142607624,    2142598623,    2142589559,    2142580430,    2142571237,    2142561979,    2142552656,
                2142543267,    2142533811,    2142524289,    2142514698,    2142505040,    2142495312,    2142485516,    2142475649,
                2142465712,    2142455704,    2142445625,    2142435473,    2142425248,    2142414949,    2142404576,    2142394129,
                2142383606,    2142373007,    2142362331,    2142351578,    2142340746,    2142329836,    2142318846,    2142307775,
                2142296624,    2142285391,    2142274076,    2142262677,    2142251195,    2142239627,    2142227974,    2142216235,
                2142204409,    2142192494,    2142180491,    2142168399,    2142156216,    2142143941,    2142131575,    2142119115,
                2142106561,    2142093913,    2142081169,    2142068328,    2142055389,    2142042352,    2142029215,    2142015978,
                2142002639,    2141989198,    2141975653,    2141962003,    2141948248,    2141934385,    2141920415,    2141906336,
                2141892147,    2141877847,    2141863434,    2141848908,    2141834268,    2141819511,    2141804637,    2141789645,
                2141774533,    2141759300,    2141743945,    2141728466,    2141712863,    2141697134,    2141681277,    2141665290,
                2141649174,    2141632926,    2141616544,    2141600028,    2141583376,    2141566585,    2141549656,    2141532585,
                2141515372,    2141498015,    2141480512,    2141462861,    2141445061,    2141427111,    2141409008,    2141390750,
                2141372336,    2141353764,    2141335032,    2141316138,    2141297080,    2141277856,    2141258464,    2141238903,
                2141219170,    2141199262,    2141179179,    2141158917,    2141138474,    2141117849,    2141097039,    2141076041,
                2141054853,    2141033473,    2141011898,    2140990126,    2140968155,    2140945981,    2140923602,    2140901015,
                2140878218,    2140855208,    2140831982,    2140808538,    2140784871,    2140760980,    2140736860,    2140712510,
                2140687926,    2140663105,    2140638043,    2140612737,    2140587184,    2140561380,    2140535322,    2140509007,
                2140482429,    2140455587,    2140428475,    2140401091,    2140373429,    2140345487,    2140317259,    2140288743,
                2140259932,    2140230824,    2140201414,    2140171697,    2140141668,    2140111323,    2140080656,    2140049664,
                2140018341,    2139986681,    2139954680,    2139922332,    2139889632,    2139856574,    2139823152,    2139789361,
                2139755195,    2139720646,    2139685711,    2139650381,    2139614650,    2139578512,    2139541960,    2139504987,
                2139467586,    2139429749,    2139391469,    2139352739,    2139313551,    2139273896,    2139233767,    2139193155,
                2139152051,    2139110447,    2139068335,    2139025703,    2138982544,    2138938848,    2138894604,    2138849803,
                2138804434,    2138758486,    2138711949,    2138664811,    2138617062,    2138568688,    2138519678,    2138470019,
                2138419700,    2138368706,    2138317024,    2138264641,    2138211542,    2138157713,    2138103139,    2138047804,
                2137991693,    2137934789,    2137877076,    2137818536,    2137759152,    2137698906,    2137637779,    2137575751,
                2137512804,    2137448915,    2137384066,    2137318233,    2137251394,    2137183527,    2137114608,    2137044612,
                2136973514,    2136901289,    2136827908,    2136753345,    2136677571,    2136600556,    2136522270,    2136442682,
                2136361758,    2136279465,    2136195769,    2136110633,    2136024020,    2135935891,    2135846206,    2135754925,
                2135662004,    2135567398,    2135471063,    2135372949,    2135273008,    2135171189,    2135067437,    2134961698,
                2134853914,    2134744025,    2134631969,    2134517682,    2134401097,    2134282143,    2134160748,    2134036836,
                2133910327,    2133781141,    2133649190,    2133514386,    2133376634,    2133235837,    2133091893,    2132944695,
                2132794133,    2132640088,    2132482439,    2132321058,    2132155811,    2131986557,    2131813148,    2131635430,
                2131453240,    2131266406,    2131074749,    2130878080,    2130676198,    2130468894,    2130255946,    2130037120,
                2129812169,    2129580831,    2129342831,    2129097876,    2128845656,    2128585842,    2128318085,    2128042016,
                2127757240,    2127463337,    2127159861,    2126846336,    2126522252,    2126187067,    2125840198,    2125481023,
                2125108873,    2124723031,    2124322725,    2123907125,    2123475334,    2123026386,    2122559235,    2122072748,
                2121565696,    2121036745,    2120484442,    2119907200,    2119303288,    2118670810,    2118007686,    2117311627,
                2116580112,    2115810355,    2114999272,    2114143435,    2113239027,    2112281786,    2111266934,    2110189100,
                2109042223,    2107819439,    2106512943,    2105113825,    2103611859,    2101995262,    2100250377,    2098361294,
                2096309356,    2094072550,    2091624713,    2088934505,    2085964072,    2082667257,    2078987202,    2074853059,
                2070175422,    2064839843,    2058697432,    2051550902,    2043133252,    2033074149,    2020844877,    2005664114,
                1986327849,    1960881696,    1925935817,    1875072640,    1794575145,    1649325647,    1317773780,    0
            };

            probability::dist_exponential m_distribution = probability::dist_exponential::standard;

            result_type pdf(result_type x) const
            {
                return this->m_distribution.pdf(x);
            }

        public:
            result_type sample_from_box_horizontal(uniform_type box_index, uniform_type uniform_random, bool& is_interior) const
            {
                result_type z = uniform_random * this->m_width_scaled[box_index];
                is_interior = (uniform_random < this->m_coverage_scaled[box_index]);
                return z;
            }

            bool is_inside_box_vertical(uniform_type box_index, result_type horizontal, uniform_type uniform_random) const
            {
                result_type f = this->pdf(horizontal);
                return (this->m_bottom[box_index] + uniform_random * this->m_height_scaled[box_index] < f);
            }

            bool is_tail_box(uniform_type box_index) const
            {
                switch (box_index)
                {
                case 0: return true;
                default: return false;
                }
            }

            template <typename t_engine_type>
            result_type sample_tail(uniform_type box_index, t_engine_type& uniform_generator)
            {
                const auto r = right_tail_x;
                double u = (uniform_generator() - t_engine_type::min()) / static_cast<double>(type::diameter + 1);
                return r - std::log(1.0 - u);
            }
        };
    }
}

#endif // AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_LCG31_HPP_INCLUDED
